přejít na obsah přejít na navigaci

Linux E X P R E S, Aféra: BitKeeper

Aféra: BitKeeper

Petr Baudiš popisuje, jak to bylo s "reverzním inženýrstvím" BitKeeperu.


Andrew Tridgell (tridge) začal před nějakou dobou pracovat na SourcePulleru, což je de facto nástroj na "vytahování" zdrojáků z BitKeeperu, včetně plnohodnotné historie. Sice existovala brána z BitKeeperu do CVS, v tomto exportu ovšem chyběly některé klíčové informace, proto nebyl příliš dobře prakticky použitelný pro převod historie z BitKeeperu do nějakého jiného podobně pokročilého systému.

Andrew "rozluštil" protokol BitKeeperu i formát, ve kterém ukládá soubory, to se ale ani trochu nelíbilo Larrymu McVoyovi (autorovi BitKeeperu) a v konečném důsledku to vedlo právě i k tomu, že Larry stáhl bezplatnou licenci pro používání BitKeeperu pro vývoj open-source projektů, tedy i linuxového jádra - proto koneckonců Linus vytvořil Git - nemohl už používat BitKeeper.

Je to ale celé poněkud tragikomické, vzhledem k tomu, že protokol BitKeeperu není nic nějak zvlášť tajemného (dokonce přátelsky odpoví na příkaz "help" seznamem příkazů včetně krátkého popisu) a použitý formát je de facto SCCS, třicet let starý napůl zapomenutý formát na ukládání historie souboru - účelem podobný RCS, ovšem postavený na jiných principech. Samozřejmě BitKeeper dělá ještě spoustu věcí navíc, ale podle všeho se ukázalo, že ty základní principy nejsou nic převratného, jen šlo vlastně hlavně o to, objevit znovu onen polozapomenutý stařičký formát a přizpůsobit ho současným potřebám.

Na podobném softwaru jako Andrew pracoval před nějakou dobou i Pavel Machek, ovšem pokud vím, práci pak přerušil, a nevím, jak daleko se vlastně dostal. Na Andrewově software je zajímavé to, že si sám dokáže stáhnout obsah repository z bkbits.net a pak jeho obsah plnohodnotně včetně veškeré historie vyexportovat do nějakého dobře zpracovatelného formátu. Je ale vlastně otázka, jak moc se bude jeho software používat, vzhledem k tomu, že nyní postupně všechny open-source projekty BitKeeper opouštějí. Proto je mnohem důležitější přínos to, že nyní víme, jak vlastně BitKeeper funguje a některé dobré nápady můžeme zužitkovat, a možná v konečném důsledku bude jako přínos i to, co tento software rozpoutal.

Teď vlastně hájím Andrewa, ale zároveň se domnívám, že je oprávněná i Linusova kritika. Tomu se nelíbilo, co Andrew způsobil, když přitom neměl v úmyslu vytvořit plnohodnotnou náhradu za BitKeeper, ale jen nástroj pro export informací, a nezdálo se mu to jako dostatečný důvod pro to, jít proti Larrymu a způsobit stažení BK licence. Osobně bych asi v Andrewově kůži volil opatrnější postup.

Hodně jsme o BitKeeperu s Andrewem mluvili na IRC a ukazuje se, že právě tento formát dává z velké části BitKeeperu tak dobré mergování - to je v dnešní době hlavní problém, na kterém různé systémy pro správu verzí dělají. Bohužel Git/Cogito touto cestou alespoň v nejbližší době jít nemůže, protože by vyžadoval změnit některé základní principy, na kterých je Git postavený. To se v budoucnu klidně může stát, ale v nejbližší době máme jiné priority.

Tento text je součástí rozhovoru s Petrem Baudišem, který si můžete přečíst v čísle 6/2005. Vychází 6. 6. 2005!

Nahoru

Přidat téma diskuse

Nejsou podporovány žádné značky, komentáře jsou jen čistě textové. Více o diskuzích a pravidlech najdete v nápovědě.
Diskuzi můžete sledovat pomocí RSS kanálu rss



 
 

Top články z OpenOffice.cz