Portál AbcLinuxu, 1. května 2025 18:50
Všichni známe Linuse, je to přece tvůrce Linuxu. Samotné stvoření tohoto kusu software nepovažuji za nějaký geniální počin. Jedná se o reimplementaci známé věci - unixu, který v 70. letech navrhli v AT & T. A navrhli to zatraceně dobře. Linus je prostě "jen" výborný programátor, který podle známých standardů jako POSIX vytvořil vlastní implementaci. Taky je jistě dobrý projekt-manažer, protože nedopustil, aby se vývoj ocitl v chaosu poté, co se na něj přes internet nabalila spousta lidí a firem.
Ta geniální záhada se totiž nejmenuje Linux, ale git...
Rozumné projekty obvykle používají nějaký systém na správu zdrojového kódu, správu verzí. Tyto systémy fungují tak, že spravují nějaké centrální úložiště. Vývojář si typicky z úložiště stáhne aktuální verzi projektu (check-out), provede nějaké změny a zase projekt uloží do úložiště (check-in, commit). Základním úkolem úložiště je spravovat verze (modifikace) souborů a umožnit návrat ke starším verzím.
Nejstarší a nejpoužívanější program pro správu verzí je CVS. Je to velmi starý (z osmdesátých let) systém, ale na většinu projektů stačí, je to de-facto standard. Druhým mně nejznámějším programem je Subversion (SVN). Jeho vývoj začal někdy kolem roku 2000 a verze 1.0 byla vydána v roce 2004. Jedná se v podstatě o pokračovatele CVS s tím, že řeší některé jeho problémy a umí něco navíc (přejmenování souboru v repozitáři se zachováním historie, atomické commity).
Některým projektům, jako třeba vývoj jádra Linux, CVS nebo SVN nestačí. Pro vývoj kernelu se hodí distribuovaný systém pro správu verzí. Jde o to, že každý check-out vytvoří vlastně klon mateřského úložiště. Případný check-in je vlastně sloučení dvou úložišť. Vývojáři jádra totiž udržují několik úložišť, ve kterých zkouší různé modifikace a tyto modifikace si pak mezi sebou různě posílají. Proto hackeři používali na správu verzí nástroj BitKeeper, který všechny požadované věci uměl. Z důvodů, kterými se zde nechci zabývat, ale byli nuceni BitKeeper opustit.
Vývojáři tedy byli v docela nepříjemné situaci. Potřebovali náhradu BitKeeperu, která ale neexistovala. Situaci vyřešil sám Linus Torvalds, když vyvinul svůj distribuovaný systém pro správu verzí a nazval ho git. To by samo o sobě nebylo nic tak neuvěřitelného, ale on to dokázal v nepochopitelně krátké době - řádově v měsících. Nejsem schopen zhodnotit, jak moc je git dospělý a použitelný, ale pravda je taková, že vývoj jádra 2.6 na něm běží a funguje to. A na KernelTrap se spekulovalo nad tím, zda by ho bylo možné nasadit na projekty jako SourceForge.
Linus zase provedl reimplementaci známého principu, který používal. A udělal to ďábelský rychle. Je to nějaký vyšší level programování, který nám obyčejným smrtelníkům zůstává utajen? Nějaké zaříkávání?
Tiskni
Sdílej:
nazov komuikácia vetvy atom body
CVS centralizovaná tvorené-ručne nie 3
Subversion centralizovaná tvorené-ručne ano 4
Monotone p2p tvorené-ručne ano 5
Darcs mail,ssh každá-kópia ??? 8
Git/cogito rsync,http každá kópia netreba 8+
komunikácia - typ komunikácie pri synchronyzácii. vetvy - ako sú tvorené barnch-e, vetvy vývoja SW. atom - atomické commity (ak sa nevykoná celý, nepoškodí DB) body - 0-10 v použiteľnosti a komforte, z vlastnej skúsenosti.
Better SCM Initiative stojí za koknutie.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.