Evropská komise naléhavě vyzvala členské státy EU, aby kvůli ochraně nezletilých na internetu urychlily zavádění unijní aplikace pro ověřování věku a zajistily její dostupnost do konce roku. Členské státy mohou zavést aplikaci EU pro ověřování věku jako samostatnou aplikaci nebo ji integrovat do takzvané evropské peněženky digitální identity.
Richard Biener oznámil vydání verze 16.1 (16.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 16. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Zulip Server z open source komunikační platformy Zulip (Wikipedie, GitHub) byl vydán ve verzi 12.0. Přehled novinek v příspěvku na blogu.
Před 30 lety, tj. v úterý 30. dubna 1996, byl spuštěn Seznam.cz.
Byly zpracovány a zveřejněny všechny videozáznamy, které stojí za zveřejnění, z konference FOSDEM 2026.
Od úterý 28. dubna musí nově uváděné notebooky v Evropské unii podporovat nabíjení přes USB-C. Jednotná nabíječka byla schválena Evropským parlamentem v říjnu 2022.
Byly publikovány informace o kritické zranitelnosti CVE-2026-31431 pojmenované Copy Fail v Linuxu, konkrétně v kryptografii (AF_ALG). Běžný uživatel může získat práva roota (lokální eskalaci práv). Na všech distribucích Linuxu vydaných od roku 2017. Pomocí 732bajtového skriptu. V upstreamu je již opraveno. Zranitelnost byla nalezena pomocí AI Xint Code.
Textový editor Zed dospěl do verze 1.0. Představení v příspěvku na blogu.
Vývojáři svobodného 3D softwaru Blender představili (𝕏, Mastodon, Bluesky) nejnovějšího firemního sponzora Blenderu. Je ním společnost Anthropic stojící za AI Claude a úroveň sponzoringu je Patron, tj. minimálně 240 tisíc eur ročně. Anthropic oznámil sponzorství v tiskové zprávě Claude for Creative Work.
VNC server wayvnc pro Wayland kompozitory postavené nad wlroots - ne GNOME, KDE nebo Weston - byl vydán ve verzi 0.10.0. Vydána byla také verze 1.0.0 související knihovny neatvnc.
reflog.
git gc) na te vetvi, kterou prave vyresetoval ne.
reset --hard hrůzného, pouze vyresetuje stav indexu (a s --hard i souborů) k požadovanému commitu. Mně spíš přijde hrůzný ten SVN popis
A ano, co se týče vnitřností je git dost odlišný (a IMO neporovnatelně lepší, jak vůbec může někdo dobrovolně používat SVN </flame>).
IMO neporovnatelně lepšíZkuste to rozvést?
git reset --hard hash resetovat do libovolného minulého stavu, i kdyby nebyl dosažitelný z žádné současné větve.
Kdybych chtěl editovat historii komplikovanějším způsobem, tak bych použil rebase v interaktivním módu asi takto:
[ wiskas@zohar ~/src/ffmpeg (new_conv2)]$ git rebase -i masterto otevře vim se seznamem commitů oproti větvi master.
pick 1e0c8de metadata: wrap conversion tables in a struct. pick 7f728c3 metadata: add callbacks to conversion system. pick 2fa0890 matroska: convert tag keys to uppercase when muxing. pick 0b0fbeb id3v2: merge TYER/TDAT/TIME frames to "date" tag on conversion. pick 3b60299 asf: truncate date to year when muxing. # Rebase aa5b13a..3b60299 onto aa5b13a # # Commands: # p, pick = use commit # r, reword = use commit, but edit the commit message # e, edit = use commit, but stop for amending # s, squash = use commit, but meld into previous commit # f, fixup = like "squash", but discard this commit's log message # # If you remove a line here THAT COMMIT WILL BE LOST. # However, if you remove everything, the rebase will be aborted. #Jednotlivé commity tady můžu označit pro smazání, editaci atd a git to zařídí.
Why is git better znám a na to video se ještě kouknu v naději že pochopím proč "jsou vnitřnosti nesrovnatelně lepší".V tomhle zrovna pomůže spíš ten Pro Git než Linusova přednáška. Pamatuju si, že se mi líbila, ale že jsem se moc nedozvěděl. Tedy kromě toho, že je git nesrovnatelně lepší
Víc se mi líbilo video od Scotta Chacona.
Proč je reverzní mergování (aka undo commit) tak hrůzné?Pokud tomu dobře rozumím, budeš mít v historii nový commit se spoustou smazaných změn?
Jak to řeknu gitu? Když ho resetnu (nebo dokonce hard) na verzi 5 tak to nebude to samé, protože tím oddělám všechny změny 5-10. Nebo ne?To, co jsem udělal já, vrátí ukazatel větve master na commit 5. Commity 6–10 zůstávají v repository a na poslední z nich ukazuje větev
new-feature, kterou jsem založil před posunem master. (Teda takhle si to alespoň já představuju
Při práci se SVN po síti jsem nikdy 5 vteřin nečekal. Na gigabitové síti se slušným HW opravdu není síť limitující faktor, nýbrž disk, a na ten si počkáte i u gitu.My nemáme kancl, pracuju doma. To je pak síť výrazný bottleneck.
Není to o disciplíně, ale o tom, že co máte v historii je v podstatně větším bezpečí, než to, co se váli v working copy.Nevím, jestli si rozumíme. Nejde o to, že bych si něco syslil doma a pak to teprve pustil na síť. I kdybych po každém commitu tlačil změny do centrálního repository, díky stagingu mám lepší kontrolu nad rozdělením provedených změn do commitů.
Ale mikro branchování lze dělat i na SVN. "svn copy" (vytvoření branche) a následné "svn switch" (přepnutí working copy) jsou téměř no-op příkazy.Možná na té rychlé síti, v tomhle nás jasně ovlivňuje pracovní prostřední. Na většinu zbývajících otázek neznám kloudnou odpověď, bohužel, v gitu se zatím moc nevyznám. Něco málo: Git uchovává snímky, nikoliv delty. V týmu zatím git nepoužíváme kvůli absenci opravdu příjemných grafických frontendů (kluci mají averzi k příkazové řádce a grafické nadstavby gitu zatím nejsou tak pěkné jako GUI nad Subversion). Pullování se běžně řeší veřejným repository. Na soukromém pracuju a když jsem hotov, pushnu do veřejného repository na serveru, odkud si může zbytek týmu změny stáhnout (= není potřeba dělat z vlastní mašiny server).
díky stagingu mám lepší kontrolu nad rozdělením provedených změn do commitů.To chápu, ale uvažuju, co se stane s nestagovanými změnami. Budou dále ve working copy a riziko že se náhodou přepíšou (nebo ztratí při změně branche) se zvyšuje s jejich věkem. IOW nejlepší je dělat check in všeho tak cca každou půl až hodinu.
Možná na té rychlé síti, v tomhle nás jasně ovlivňuje pracovní prostřední.Zrovna tohle by mohlo trvat obstojně dlouho i na pomalé síti. Bude se doslova jednat o přenos pár bajtů. Ale je fakt, že SVN exceluje hlavně v uzavřených týmech na lokálních sítích.
kluci mají averzi k příkazové řádce a grafické nadstavby gitu zatím nejsou tak pěkné jako GUI nad SubversionTohle se dá řešit nějakým IDE ;)
Na soukromém pracuju a když jsem hotov, pushnu do veřejného repository na serveruJá jsem právě někde četl že je lepší dělat vždy jenom pull? Pokud děláte tohle, tak to je vlastně stejná situace jako byste měli centrálně SVN a používali git+svn? A pokud udělám push, pak pushuju do nějaké aktivní větve, nebo můžu tímto způsobem pushnout třeba 3 branche?
To chápu, ale uvažuju, co se stane s nestagovanými změnami.Žádné nejsou. Jde o, že se třeba vypravím do souboru X opravit chybu. Cestou si v polovině souboru všimnu jiné, tak ji zároveň opravím též. Pak můžu pomocí
git add -p obě změny rozdělit do dvou nezávislých commitů, které jdou okamžitě do historie.
Zrovna tohle by mohlo trvat obstojně dlouho i na pomalé síti. Bude se doslova jednat o přenos pár bajtů.Nevím proč, ale trvá to. Máme mizerný server v zámoří, zatím nebyl čas přejít na lepší řešení. V gitu je to místní operace:
$ time ( git branch foo && git branch -D foo ) Deleted branch foo (was 5490107). real 0m0.122s user 0m0.004s sys 0m0.016s
Já jsem právě někde četl že je lepší dělat vždy jenom pull? Pokud děláte tohle, tak to je vlastně stejná situace jako byste měli centrálně SVN a používali git+svn? A pokud udělám push, pak pushuju do nějaké aktivní větve, nebo můžu tímto způsobem pushnout třeba 3 branche?Veřejné repository pro pushe jsou naprosto běžná praxe, viz celý GitHub. Rozdíl je v tom, že push můžu dělat třeba jen jednou denně, když se práce stabilizuje, když mám připojení k síti, když končím s prací. Když mi během dne ujede ruka a vyrobím nesmyslný commit, můžu ho zredigovat podle potřeby a veřejná historie zůstane čistá. Pushnout se dá cokoliv. Jeden commit, jedna větev, víc větví, tagy.
Jde o, že se třeba vypravím do souboru X opravit chybu. Cestou si v polovině souboru všimnu jiné, tak ji zároveň opravím též.Aha, tak to já si radši napíšu na papírek, protože se může stát, že bych mezitím zapomněl na tu první chybu. :)
Tady asi budou hrát roli síťové latence, případně mrštnost serveru.real 0m0.122s
$ time (svn cp ^/trunk ^/branches/boo -m testboo && svn rm ^/branches/boo -m testboo) Committed revision 3942. Committed revision 3943. real 0m0.856s user 0m0.013s sys 0m0.013s
Veřejné repository pro pushe jsou naprosto běžná praxeOK. Já sleduju jen vývoj jádra a pár dalších projektů a tam lítají spíš pull requesty.
Například to reverzní mergování (undo commit)?Je možné přepsat historii tak, aby ten commit vypadl (viz výše), nebo je možné přidat commit revertující ty změny, stejně jako v SVN (git revert). Každé má své výhody i nevýhody.
Nebo jak řeší git přesun souborů/adresářů a následný merge nové struktury?Z vlastní zkušenosti (ale stalo se mi to jen jednou) to řeší dobře. Někdy je ale ta detekce kopií dost otravná.
Co se stane, když z repozitáře smažu 3 náhodné revize?Jak smažu? Pokud půjdu na killing spree do adresáře .git a smažu náhodné soubory, pak to pochopitelně přestane fungovat. Jinak nevím, co myslíš tím "smažu".
Jak řešíte zálohy?Nevím jak to kdo řeší, ale kromě periodického fetchování do zálohy funguje na .git adresář i cp -a, takže i jakýkoli jiný zálohovací program.
Někdy je ale ta detekce kopií dost otravná.Např?
Pokud půjdu na killing spree do adresáře .git a smažu náhodné soubory, pak to pochopitelně přestane fungovat. Jinak nevím, co myslíš tím "smažu".Jo, myslím to takhle, respektive třeba když se to nějakým způsobem poškodí. Jde nějak přesněji definovat co a za jakých podmínek přestane fungovat?
funguje na .git adresář i cp -a, takže i jakýkoli jiný zálohovací program.Jasně, myslel jsem to spíše procesně. U SVN stačí zálohovat repo, u gitu to vypadá že by si měl zálohu každý pořešit sám?
Někdy je ale ta detekce kopií dost otravná. Např?Např. když je v projektu hodně skoro stejných souborů (třeba makefily kde většinu zabírá licence), tak to detekuje kopie in mezi naprosto nesouvisejícími soubory a je spíš loterie, který si vybere. Pak to minimálně vypadá blbě v git show.
Jo, myslím to takhle, respektive třeba když se to nějakým způsobem poškodí. Jde nějak přesněji definovat co a za jakých podmínek přestane fungovat?Pokud si smažeš blob (data nějakého souboru), tak jsi o něj přišel. Pokud commit, tak teoreticky jde (pokud ho nutně nepotřebuješ) předělat historii větve tak, aby na ní nebyl. Když si smažeš odkaz na větev nebo tag, jde to spravit poměrně bezbolestně (pokud víš kam ukazoval - není potřeba pamatovat si sha1, stačí prohrabat repozitář a vybrat si z nereferencovaných commitů ten svůj. Pokud smažeš pack, záleží, co v něm bylo.
reset --hard).
Tiskni
Sdílej: