Portál AbcLinuxu, 3. prosince 2025 02:34
Rozhodoval jsem se, jaký systém pro kontrolu verzí začít používat. Předem jsem zavrhl centralizované systémy (CVS, Subversion, atp.), jelikož oproti těm decentralizovaným mají celou řadu nevýhod a z mého pohledu se mi jeví jako zastaralé (i když samozřejmě spoustě lidem mohou stačit, to nepopíram). Jenže který decentralizovaný SCM začít používat?
Mezi nejznámější decentralizované SCM patří:
GNU Arch 1.x (tedy tla nebo starý bazaar) má hodně nevýhod a zdá se mi již překonaný (i když možná ho zachrání připravovaný Arch 2.0), na Monotone se mi nelíbí P2P systém (klient funguje pokud vím zároveň i jako server, ale je zde prostě nutnost na počítači onen monotone klient/server mít) a ještě pár drobností, svk je postavené nad Subversion a celý ten projekt mi připadá tak trochu jako bastl (navíc jestli se nepletu v Perlu, fuj
), ArX je původně také klon Archu (ale není s ním kompatibilní a má oproti němu zřejmě některé výhody), nicméně nezdá se mi moc rozšířený a má navíc hromadu zbytečných závislostí a Codeville vypadá na mrtvý projekt. Pak je tu ještě Mercurial, o tom toho bohužel moc nevím, ale podle wiki vypadá, že by to potenciálně mohl být docela kvalitní SCM.
Bazaar-NG, Darcs a Cogito jsou z toho co jsem tak zjistil na netu nejznámější a zřejmě i nejlepší distribuované SCM. Nejvíc se mi zalíbil Darcs, ale později jsem objevil Bazaar-NG a ten se zdá být na podobně dobré úrovni jako Darcs a přitom je narozdíl od něj napsaný v Pythonu. Darcs je napsaný v Haskellu a vzhledem k tomu, že Python mam rád a Haskell je pro mě obskurní jazyk kterému nerozumím, rozhodl jsem se dát přednost Bazaar-NG
Bazaar-NG má taky trochu výhodu v tom, že za ním stojí Canonical Ltd. Pak je tu ještě zmiňované Cogito, ale po přečtení README na mě moc extra dobrý dojem neudělalo. Je to zcela jistě skvělý SCM, ale Darcs a Bazaar-NG se mi prostě zdají takto "na první pohled" lepší. I když git/cogito zas má výhodu v tom, že je používáno k vývoji linuxového kernelu a klidně bych se vsadil, že se do budoucna hodně rozšíří.
Jaké jsou vaše zkušenosti s výše zmiňovanými SCM? A co byste mi doporučili? Podělte se o své poznatky 
UPDATE:
Další výhoda Bazaaru-NG oproti Darcsu (a zřejmě i oproti Cogito?), kterou jsem objevil, je jeho přímá podpora pro publikování (push) přes FTP. Lze ho tedy pohodlně využít i na serverech, kam má člověk pouze HTTP a FTP přístup.
Tiskni
Sdílej:
. Arch 2.0 je afaik mrtvý, resp. není nikdo kdo by na něm dělal. Taky se mi nevjíc líbí bazaar-ng, ale důvod mám víceméně stejný jako ty
.
Ale když už tu máme Bazaar-NG, který je v Pythonu (a je na tom podle toho co sem tak četl zdá se skoro stejně dobře jako Darcs), tak proč nedát šanci jemu
Je to trochu zaujatost, ale proastě mam python rád (a to se ho přitom teprv učim... ten jazyk mě ale prostě uchvátil
).
Kromě toho přeci jen bude asi o něco rychlejší, ač má Haskell troěku problémy dotlačit se na úroveň Ocamlu/C/C++, přeci jen se blíží spíš jim než Pythonu. Ale to už pak záleží spíš na tom, co od toho řešení očekáváte, že.
Možná někdy v budoucnosti (vzdálené) bych i na Haskell ze zajímavosti více kouknul, ale nepředpokládam, že bych se ho někdy začal opravdu učit. To už mě víc láká začít se učit čistě objektový Smalltalk
A co se týče rychlosti Pythonu, tak ta mi přijde v dnešní době zcela dostatečná... jistě, jsou věci kde je výkon na tolik důležitý, že se je vyplatí (a je potřeba) napsat v Cčku (různé grafické enginy, nízkoúrovňové věci, atp.), ale SCM zrovna IMHO není ten případ
Pak je ještě hezký jazyk také Ruby, ale Python se mi zalíbil víc, a tak jsem se začal učit ten...
Ale asi to záleží na vkusu.
Což mě tedy přijde jako dost velká nevýhoda, protože to že můžu používat SCM i tam kde mam jen FTP přístup považuju za dost důležitou věc (na spoustu serverů člověk jiný přístup než HTTP + FTP bohužel nemá).
Co se tyce centralizovanych SCM, velka vyhoda takoveho SVN je spousta dostupnych nastroju.
Jediné co je na Bazaaru-NG pomalé (tedy z toho co jsem zkoušel) je provoz přes net (třeba brach nebo push operace). Ale to by se mělo podle wiki v brzké době hodně zlepšit (rychlost by se měla zvětšit alespoň 30x!).
$ time bzr status unknown: src/test2.db real 0m0.994s user 0m0.688s sys 0m0.140sPo ,zahřátí`
Ale na blbý status mi to fakt přijde jako trochu moc. Hlavně ten dojem z toho
$ time svn status ... real 0m0.191s user 0m0.068s sys 0m0.044sA to jde o větší projekt a repozitář je na jiném počítači (přes LAN, pravda).
[mikos@tauri bzr]$ time bzr status real 0m0.232s user 0m0.188s sys 0m0.032sA to muj počítač není žádné "dělo"
Už celkem starý Athlon-XP 2600+ a 512MB RAM. Mně to číslo nepřijde jako nijak strašné...
Pokud jsem tam něco nepřehlídl, tak má zaprvé velmi špatně fungující rename/mv, potřebuje zvláštní server a ještě nějaké nevýhody tam byly vypsané. Ale je to vcelku živý projekt, tak možná že se to časem zlepší... i když nevidim důvod proč ho používat, když jsou tu dokonalejší, živější a snad i rozšířenější projekty jako právě Bazaar-NG a Darcs.
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.