Distribuované verzování, distribuovaná kontrola verzí nebo decentralizované verzování umožňuje mnoha programátorům pracovat na daném projektu bez sdílení společné sítě. Softwarové revize se ukládají do systému pro distribuované verzování (anglicky distributed version control system), zvaného i distribuovaný systém pro kontrolu verzí.
Porovnání distribuovaného a centralizovaného systému
Distribuované verzování používá k verzování přístup peer-to-peer (v jedné rovině, neboli rovný-s-rovným), zatímco centralizované systémy přístup klient-server. Tedy centralizované systémy používají jediný centrální repozitář (úložiště), kde se klienti synchronizují, zatímco u distribuovaného verzování je pracovní kopie kódové báze (codebase) kopií celého repozitáře. Distribuované verzování synchronizuje repozitáře výměnou tzv. patchů (kolekcí změn).
To znamená důležité rozdíly od centralizovaného systému:
- Neexistuje žádná referenční kopie kódové báze, jenom pracovní kopie.
- Běžné operace jako commity, prohlížení historie úprav a vracení změn je rychlejší, jelikož se nemusí komunikovat s centrálním serverem.
- Komunikace je nutná jen při sdílení změn mezi vývojáři.
- Každá pracovní kopie efektivně funguje jako vzdálená záložní kopie kódů a historie jejich změn a brání tak proti ztrátě dat.
Další rozdíly:
- Více "centrálních" repozitářů.
- Kód z různých repozitářů je slučován na základě sítě důvěry, to jest na kvalitě nebo hodnotě předchozích změn.
- Pro běžné operace není nutný přístup k síti.
Historie
V 90. letech se pro firemní řešení ve velké míře používaly proprietární verzovací systémy jako například Sun WorkShop TeamWare, které inspirovaly BitKeeper (1998), jeden z prvních open source verzovacích systémů. BitKeeper byl používán při počátečním vývoji linuxového jádra.
První generace open source verzovacích systému zahrnovala Arch a Monotone. Druhá generace odstartovala příchodem Darcs, následovaného dalšími. Když se vydavatelé BitKeeperu rozhodli v roce 2005 omezit licencování programu, začaly vznikat volné alternativy Bazaar, Git a Mercurial.
Reference
V tomto článku byl použit překlad textu z článku Distributed revision control na anglické Wikipedii.