Portál AbcLinuxu, 30. dubna 2025 20:37

Do nového roku s novým VCS (Bazaar)

31.12.2007 17:48 | Přečteno: 928× | Ani zbla | Výběrový blog

VCS - Version Control System

Přes vánoční svátky jsem trochu studoval dokumentaci k Bazááru. Bzr na mě udělal dojem, líbí se mi, jak je to škálovatelné. Škálovatelností nemyslím schopnost vyrovnat se stomegabajtovýma patchema, ale schopnost být užitečný jednomu osamělému vako-vlko-vývojáři stejně jako neorganizovanému monstrtýmu rozprsknutému přes půl světa.

Tato škálovatelnost jde ruku v ruce se zpětnou kompatibilitou s mainstreamovým Subversion. Takže omezený mozeček vývojáře, který má jiné starosti, než se učit zacházet s novým programem, není vystaven takovému stresu.

Checkout ala SVN

Na začátku je možné bzr používat jako feature to feature náhradu za svn. Tedy: existuje centrální úložiště, checkout obsahuje jen jen pracovní kopii. Commity se odehrávají na serveru, pro logy se chodí tamtéž. Checkout se aktualizuje obligátním příkazem update.

Za předpokladu, že na serveru je centrální úložiště, udělá se svn-like checkout nějak takhle:

bzr checkout --lightweight bzr://centralhost/srv/bzr/X-repo/X-trunk

Checkout aka heavy

Druhý mód je takový hybridní (tedy něco mezi centralizovaným a distribuovaným přístupem). Checkout obsahuje nejen pracovní kopii, ale též kompletní historii dané větve. Checkout je vlastně plnohodnotná nová větev, která je ale spojena se vzdálenou větví na serveru. Prohlížet logy lze tedy lokálně, což může odlehčit serverům u velkých projektů. A jak je to s commitováním? Šalamounsky každý commit se provede zároveň do lokálního repozitáře i do vzdáleného. Pokud vypadne spojení ze serverem, je možné commit nepřeposílat na server pouhým uvedením přepínače --local.

Vytvoření "heavy" checkoutu je nasnadě:

bzr checkout bzr://centralhost/srv/bzr/X-repo/X-trunk

Checkout ala branch

No a pokud má někdo náladu, může si verzovat plně distribuovaně. Pak je každý checkout vlastně zcela nezávislá větev. Větev vytvoříme klasickým

bzr branch bzr://centralhost/srv/bzr/X-repo/X-trunk

Nezávislou větev je taky možné vytvořit odpojením "heavy" checkoutu od mateřského repozitáře (bzr unbind), potom jsou všechny commity jen lokální. Odpojení je též vhodné pokud jsme delší dobu bez spojení se serverem a nechceme každý commit explicitně označovat jako lokální. Větev je možné navázat na jinou přes bzr bind.

Pro přenášení změn mezi různými samostatnými větvemi je možné použít příkazy pull a push.

Poznámka

Docela mě překvapilo, že bzr obsahuje příkaz uncommit, který dokáže odvolat posledních N commitů. V svn je to tak, že commit je neodvolatelný, co jednou dáte do repozitáře, to bude pod danou revizí vždy dostupné. Zde je politika benevolentnější.

       

Hodnocení: 88 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

31.12.2007 19:00 Miloslav Ponkrác | blog: miloslavponkrac
Rozbalit Rozbalit vše Re: Do nového roku s novým VCS (Bazaar)
Odpovědět | Sbalit | Link | Blokovat | Admin
Já se omlouvám, ale Bazaar se mi líbí, ale moje prioritní podmínka na jakýkoli VCS je široká multiplatformovost na široké škále platform - to je priorita 1. Pokud jsem správně pochopil instalační dokumentaci, tak to nativně běží na Linuxu, na Windows už se něco emuluje cygwinem, tudíž plně nativní aplikace není. Opravte mě, pokud se mýlím.

Podívám se na Bazzar za půl roku, za rok, zda se stane multiplatformním, nebo nikoli. Zatím je to předčasné.
http://ponkrac.net
31.12.2007 19:55 Martin Böhm | skóre: 17 | blog: Martinův stánek | Je mi to MFFUK
Rozbalit Rozbalit vše Re: Do nového roku s novým VCS (Bazaar)
Co jsem slyšel, tak se Mark Shuttleworth a ostatní hoši z bazaru dušují, že na rozdíl od gitu na Windows bzr funguje excelentně ... Windows doma nemám, ale z http://bazaar-vcs.org/WindowsDownloads chápu, že existuje tento instalátor a pak nějaké CygWin balíky (tedy ten uveřejněný instalátor neobsahuje cygwin).

Nicméně vyzkoušet to bude asi nejlepší způsob, jak se dozvědět pravdu (což já nemůžu).
5 z 0 přetečení bufferu doporučuje Korespondenční seminář z programování (pro středoškoláky programátory).
31.12.2007 20:02 r
Rozbalit Rozbalit vše Re: Do nového roku s novým VCS (Bazaar)
koukni na nej hned, protoze uz ted je multiplatformni, zadny cygwin

po nainstalovani je tam kupa .pyd souboru, par .dll, .exe a jeden .zip s .py, nic vic (tj. jestli me znalosti neklamou, tak to je klasicka instalace pythoni aplikace i pro ty co nemaji nainstalovan samotny python)
alblaho avatar 31.12.2007 22:43 alblaho | skóre: 17 | blog: alblog
Rozbalit Rozbalit vše Re: Do nového roku s novým VCS (Bazaar)
Miroslave, multiplatformnost je zásadní i pro mě. Sice jsem to nezkoušel, ale v dokumentaci tvrdí, že to jede i pod win, i bez cygwinu. Takže je to ok. Ono i ten git snad už pod win funguje.
31.12.2007 22:48 r
Rozbalit Rozbalit vše Re: Do nového roku s novým VCS (Bazaar)
kdyby jen v dokumentaci - i ja to tvrdim/dokazuji o post vyse :)
alblaho avatar 1.1.2008 16:11 alblaho | skóre: 17 | blog: alblog
Rozbalit Rozbalit vše Re: Do nového roku s novým VCS (Bazaar)
Asi žádný příčetný vývojář by neudělal vážně míněný VCS závislý na nějaké platformně. Předpokládat, že nějaký soft bude vyvíjený jen na jedné platformě (a do toho počítám třeba psaní dokumentace), je nehratelné omezení.

Git je výjimka, protože to není vážně míněný univerzální SCM, ale homebrew udělátko, které Linus potřeboval na svůj projektík. :-)

A i ten git na woknech nakonec běžet bude.
17.1.2008 22:31 Lukáš Zapletal | skóre: 42 | blog: lzapův svět | Olomouc
Rozbalit Rozbalit vše Re: Do nového roku s novým VCS (Bazaar)
Odpovědět | Sbalit | Link | Blokovat | Admin
BZR se mi libi take, ale trosku je problematicka instalace do Windows. Chci jej pouzivat i na notebooku, kde mam Windows, podpora SSH v zakladnim balicku neni a musel jsem hledat dva Python moduly v binarcich pro Windows. Nastesti jsem nasel, ale je to trosku neprijemne.

Tu skalovatelnost jsem nejak nepochopil.
Later --- Lukáš Zapletal

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.