Git je na sf už možná pár týdnů, když jsem si tam registroval projekt, tak už jsem měl možnost si zapnout git repozitář. Pravda, bazaar ani mercurial tam ještě nebyly.
Ja osobne na serveru a projekty vyuzivam GIT je to velice skveli program. Vyuziva ho i projekt distribuce Archlinux. Je velika vyhoda toho pokud hostujici server ma verejnou IP adresu tak uzivatel si muzete stahnout aktualni obraz git repozitare. Nebo pro ti co neumeji nebo maji GIT jako napriklad windows lze udelat obraz repositare na serveru a udelat k nemu pristup ftp pak uz stacit jen jako administrator prohledat clony Git repositare, zjistit zmeny a pak je v pripade zajmnu aplikovat do hlavniho repozitare.
S pozdradem Mr. Lukas Blaschko <lukas@blaschko.org> www.blaschko.org
CVS je pomalá hrůza, která ani nemá atomický komit.
SVN se používat dá, u firemního centralizovaného vývoje no problem.
Bazaar (a Mercurial, ten znám nejmíň) přidávají distribuovanost. To se opravdu hodí na komunitní projekty, odpadá dilema komu dát a nedát právo zápusu do repozitáře. Ovládání BZR je velmi podobné SVN, je možné nové fíčury objevovat postupně.
Git je bleskově rychlý, tvorbu "levných větví" dovádí k dokonalosti (protože je dělá "in-place"). Ale taky má trochu jiné ovládání, je trochu svůj, někomu to může připadat složitější.
No já bych řekl, že ta větší pružnost v právech přístupu se velice hodí i ve firemních systémech, kde se změny dostávají nahoru systémem pull (dělá jedna oprávněná osoba) namísto push (dělá kdokoliv, kdo má pocit, že má čím přispět). Navíc lze správu projektů řídit hierarchicky, kdy si jedna skupinka dělá na nějakém podprojektu nebo dílčím úkolu, sdílí kód mezi sebou v rámci svých repozitářů a "nahoru" jde až výsledek (metodou push nebo pull, to záleží na potřebách a preferencích.
V distribuovaném VCS si navíc mohu řádit bez problémů - přidávat, mazat, slučovat, dělit commity, porovnávat větve atd. atp., zatímco nadřazený repozitář zůstává krásně čistý, bez přebytečných větví apod. Těch výhod je více, ale poměrně nedávno jsme o nich diskutovali někde jinde na Rootu. Já mám zkušenosti jenom s git, ale myslím, že bzr i hg jsou co do možností srovnatelné.
Ja si take myslim, ze pro firemni centralizovane prostredi je lepsi SVN. V repozitari je sice hromada vetvi, ale na druhou stranu je vsechno na jednom miste, je dobry prehled o tom co kdo dela, zalohovani apod. je vyreseno na jednom miste. A vubec, co si ma kdo co syslit v nejakem lokalnim repozitari :-). Ne, ted vazne, je jeste nejaka vyrazna vyhoda dist. VCS krom toho, ze je centralni repozitar cisty?
Neide ani tak o to ci mas doma net, ale ci sa dostanes na cenralny repozitar. Vecsina firiem co poznam nedovoluje pristup zvonku (alebo s tym robi take obstrukcie, ze cloveka na to prejde chut).
Distribuovany vcs ma teda jednoznacnu vyhodu v tom, ze ked sa rozhodnes doma nieco robit, tak to nemusis po vikende commitovat ako jednu velku buncu kodu s komentarom na pol obrazovky. Dalsia vyhoda je ze sa changesety daju poslat napriklad mailom niekomu, kto rozhoduje o ich aplikovani... to je len zopar vyhod, ktore maju distribuovane vcs.
Praveze my jsme vsichni venku a tak mame pristup zvenku. Do sve vetve si kazdy muze dat co chce a myslim, ze je dobre, ze ostatni maji ty zmeny k dispozici kdykoli potrebuji. Taky me tohle napadlo jako vyhoda, ale v praxi se nesetkavam s tim, ze by me to nejak omezovalo.
Ty změny máš k dispozici stejně, ať už máš distribuovaný repozitář nebo ne (bez netu prostě nejsou). Nemáš k dispozici historii, ale to bez přístupu k firemní síti většinou není moc potřeba. Největší výhody distribuovaných VCS jsou paralelnost a web of trust, ani jedno ale ve firmě nevyužiješ (ve firmách se moc paralelně nevyvíjí a zaměstnancům se většinou věří, alespoň u jejich projektů).
U nás ve firmě se osvědčilo SVN, případně SVK nebo Mercurial nad SVN. Pro firmy je důležitá ta centrálnost všeho vývoje (když pracovníka přejede auto a někdo mu ukradne notebook, je potřeba, aby bylo možné ho jednoduše nahradit s co nejmenší ztrátou kódu).
V OSS je lepší distribuované VCS, dva příklady:
Web of trust. V kernelu se nějaká skupinka vývojářů rozhodne dělat nový ovladač, tak pullne zdrojáky kernelu, začne si lokálně vyvíjet ten ovladač (bez nutnosti mít pro všechny potenciálně nebezpečný write access ke zdrojákům kernelu) a až to dodělá a vyladí, tak jedna trusted osoba z těch vývojářů to pushne.
Ubuntu a Debian jsou v podstatě stejné systémy, akorát Ubuntu má mnohem relaxovanější přístup k vývoji (např. nemá tak striktní pravidla jako DFSG). Protože jde o paralelní vývoj, kde nejde změny z jednoho do druhého přelévat vždy (plus debianní vývojáři nevěří všem ubuntím a vice versa), je pro to vhodné mít dva repozitáře, které je možné syncovat. Na to je právě dobrá ta distribuovatelnost.