Inteligentní archivKrátké seznámení s CVS, Softwarové noviny, 6/2000
|
Stručné představení
Každý, kdo píše webové stránky, programuje nebo chystá stěžejní
knihu o povaze černých mloků, se jistě někdy potýkal s různými verzemi
téhož dokumentu nebo souboru. Tyto verze je většinou nutné nějak
archivovat, aby bylo možné se k nim vracet v případě, že do nové verze
zanesete chyby nebo vás nová verze prostě omrzí. Jestliže na tvorbě
spolupracuje několik autorů nebo vývojářů současně, problém narůstá do
dalšího rozměru, protože je nutné vytvořit pořádek v různých verzích
od různých autorů. Postupem času proto vznikly programy, které
nahrazují funkci archivu. Spravují originály všech verzí, vytvoří si v
nich pořádek a na požádání vám vydají libovolnou verzi
dokumentu. Většinou také dokáží ohlídat, aby si jednotliví
spolupracovníci navzájem neničili práci přepisováním svých
verzí. Mnohé nabízejí ještě různá další ulehčení práce v týmu. Jedním
z takových programů je i program CVS, na který se nyní podíváme
blíže.
Název CVS je zkratkou anglického názvu Concurrent versions
system, který se do češtiny většinou překládá jako systém pro správu
verzí. CVS je velmi inteligentní archiv, který se postará o většinu
vašich souborů. V archivu můžete mít uložen vcelku neomezený počet
různých projektů a pracovat s nimi nezávisle na sobě. Archiv za vás
hlídá změny v jednotlivých souborech a proto je možné kdykoliv se
vrátit k libovolné z předcházejících verzí. CVS pomůže i ve velkých
týmech, protože uhlídá možné konflikty vznikající v situacích, kdy se
pokouší několik vývojářů pracovat ve stejný čas s jedním
souborem. Netrpělivým šéfům nabízí CVS ještě jednu možnost: mohou
průběžně sledovat, se kterými soubory se právě pracuje. Archiv vám
poskytne také informaci o tom, kdo se soubory pracuje, u kterého sedí
počítače a kdy svou práci zahájil. Tyto informace nejsou pochopitelně
určeny jen vedoucím: může si je kdykoliv vyžádat každý z uživatelů
archivu. A poslední výhoda: uživatelé archivu mohou pracovat s
libovolným operačním systémem. Archivu je úplně jedno, jestli
komunikuje s uživatelem pracujícím ve Windows, Linuxu nebo
MacOS.
Základní princip práce s archivem je jednoduchý: v archivu jsou
umístěny všechny verze souborů obsažených v projektech. Každý z
uživatelů si v libovolný okamžik smí vyžádat od archivu pracovní kopii
projektu. Obdrží přesnou kopii projektu uloženého v archivu, při
přenosu se zachovává struktura adresářů a souborů projektu. Po
provedení úprav v projektu uživatel odesílá změny zpět do archivu,
který si je zanese do svého systému a vytvoří novou verzi
projektu. Při práci s archivem je možné cestovat v čase směrem dozadu:
máte přístup ke všem verzím projektu, které kdy v historii
vznikly. Verze jsou dostupné buď pod svým číslem nebo datem
vzniku. Váš dotaz proto obsahuje buď specifikaci čísla verze, o kterou
máte zájem, nebo určení data a času — v takovém případě získáte
pracovní kopii projektu ve stavu, v jakém se v uvedeném čase
nacházel.
Ctitelé sci-fi jistě ocení, že kromě cestování v čase podporuje
CVS i paralelní světy. Vývoj projektu můžete kdykoliv rozdělit do více
větví a zpracovávat v nich projekt odděleně. V jedné větvi probíhají
například opravy chyb naposledy uvolněné verze programu, ve druhé
vývoj nové verze.
|
|
|
Lokální a síťový archiv
Archiv může být pracovat ve dvou základních režimech: jako
archiv lokální nebo síťový. Lokální archiv se nachází v nějakém
adresáři na počítači, u kterého pracujete. Komunikaci s lokálním
archivem vám zajišťuje CVS klient. CVS klient existuje pro Windows i
pro Unix, v obou systémech se chová naprosto
stejně. Klasický klient je program, který s uživatelem
komunikuje pomocí příkazového řádku. Někomu možná práce v příkazovém
řádku nevyhovuje. Existují proto i grafické klienty. Já sama mám
docela dobré zkušenosti s graficky orientovaným klientem WinCVS pro
Windows nebo klientem jCVS napsaným v Javě. Pro běžnou práci oba
bohatě postačí, nemají však zatím uspokojivě vyřešeny některé
doplňující funkce, jako je například sledování vývoje projektů. V
takovém případě je nutné spokojit se s příkazovým řádkem.
Pro více uživatelů je možné připravit archiv síťový. O archiv se
stará CVS server, uživatelé se serverem komunikují pomocí svých
lokálních klientů. Server opět existuje pro Linux i pro Windows. Na
tom, jaký operační systém jednotliví uživatelé používají pochopitelně
vůbec nezáleží. K archivu umístěnému na unixovém serveru tak mohou
pohodlně přistupovat uživatelé všech operačních systémů, pro které
existuje klient. Vlastní archiv opět tvoří adresář, kde jsou uloženy
projekty a konfigurační soubory. Při komunikaci se serverem se využívá
TCP/IP, proto je při nastavování serveru nutné spustit příslušnou
službu. K archivu je možné přistupovat několika způsoby. Nejjednodušší
je anonymní přístup bez ověřování hesla. Dále je možné využít přístupu
s kontrolou uživatelského jména a hesla (tzv. pserver) nebo
šifrovaného přihlášení pomocí ssh. Důležité je, že uživatel archivu
nemusí být vůbec uživatelem systému, na kterém je server
nainstalován. Server neklade výrazné nároky na výkon
počítače. Jestliže je archiv určen pro menší okruh uživatelů (deset a
méně), kteří se s archivem spojí jednou, maximálně dvakrát denně,
poslouží i starší vysloužilý počítač se slabším procesorem, relativně
velkým diskem a prakticky jakoukoliv síťovou kartou. Jakmile chcete
pomocí CVS nabízet návštěvníkům vašich serverů nějaké soubory ke
stažení, nároky na výkonnost hardware rostou s předpokládaným počtem
přístupů.
Při běžné práci s archivem vůbec nerozlišíte, zda právě
pracujete s archivem lokálním nebo síťovým. V obou případech
komunikujete s klientem, který vypadá pokaždé stejně. Jediným rozdílem
bývá, že se k síťovému archivu musíte přihlásit.
|
|
|
Jak vlastně CVS pracuje
Abyste si učinili přesnou představu o možnostech a schopnostech
CVS, je nezbytně nutné pochopit, jak vlastně informace o projektu
uchovává. CVS je program navržený pro správu archivů se zdrojovými
kódy a je důsledně orientován na textové soubory. Jednotlivé soubory
tvořící projekt nejsou v archivu uloženy v přesně stejné podobě, v
jaké se dostanou ke koncovým uživatelům, ale v takzvaném RCS
formátu. CVS si neukládá všechny verze jednotlivých souborů, pamatuje
si pouze změny mezi jednotlivými verzemi. Znamená to, že si pamatuje
přesně poslední verzi a potom si ukládá informaci, co se kdy změnilo
vůči verzi předcházející. Změny mezi verzemi si CVS zapisuje tak, že
si poznamená, kde se v souboru změnily nebo přibyly nějaké
znaky. Výrazně se tak šetří místem na disku.
I při práci s vaší kopií projektu se zachází se všemi soubory
jako se soubory textovými. Jestliže si své soubory změníte a požádáte
archiv, aby vám změny označil, sáhne do vašich souborů a přidá řádky
označující rozdíly proti verzi souborů v archivu. Při ukládání
projektu do archivu je proto nezbytně nutné včas označit soubory,
které nejsou textové (například obrázky). Do těchto souborů
potom CVS nezapisuje a pamatuje si je celé. Rovnou tak můžeme
odhadnout, k čemu se vlastně archiv hodí, a na co je naopak
nepoužitelný. Projekty, kde je podstatné uloženo v textových souborech
a binární soubory jsou jen doplňující, jako jsou zdrojové kódy
programů, kódy webových stánek, XML dokumenty apod. můžeme v klidu
vložit do archivu a spokojeně využívat všech výhod, které archiv
nabízí. Naopak projekty, které jsou tvořeny především sadou dokumentů
vytvořených například v nějakém komerčním textovém editoru, jako je MS
Word či Star Office, jsou pro CVS naprosto nevhodné. Většina dokumentů
nejsou textové soubory. (Nenechte se zmást představou, že máte v
dokumentech texty. Textový soubor je soubor, ve kterém je text uložen
pomocí tzv. ASCII kódu a to není tento případ.) Projekt tak můžete
uložit do archivu, ale nebude možné využít všechny nástroje pro práci
s archivem.
Práce s archivem je jednoduchá. S archivem se komunikuje pomocí
příkazů, zadávaných v příkazovém řádku. U grafických klientů se
příkazy skrývají za položkami jednotlivých nabídek. Jak už jsem
uvedla, po prvním přenesení projektu do archivu mohou všichni
uživatelé, kteří znají jméno projektu, získat tzv. pracovní
kopii. Soubory tvořící projekt se přenesou na pevné disky jejich
počítačů. Se soubory mohou zcela svobodně pracovat. Kdykoliv uživatel
archivu provede ve své pracovní kopii výraznější změny, odešle je
jedním příkazem do archivu. V ideálním případě tak vzniká nová verze
projektu. Může se však stát, že těsně před naším uživatelem do archivu
odešle jiné změny někdo další. Nová verze by mohla tyto změny
přepsat. V takovém případě nová verze nevzniká, nastává situace, které
se říká konflikt. CVS uživateli v jeho souborech označí, kde dochází
ke konfliktu. U binárních souborů jen označí, že ke konfliktu dochází,
ale nezasahuje do nich. Uživatel se nyní musí rozhodnout, co
udělá. Může se spojit se svými kolegy, nebo podle vlastní úvahy změny
nějak sloučit. Při novém pokusu o odeslání již ke konfliktu nedojde a
vzniká nová verze.
Verze souborů jsou v projektu číslované a kdykoliv je možné se k
libovolné verzi souboru vrátit. Je možné cestovat i v čase: můžete
přesně určit, jak starou verzi projektu nebo souboru vlastně
chcete. Dále je možné některé důležitější verze projektu pojmenovat a
přistupovat k nim pomocí jména (u vývoje programu tak můžete označovat
například jednotlivé uvolněné beta verze, u webových stránek třeba
verze, které jste opravdu vyvěsili na Internet, nebo u knížky verze,
které šly na korektury). Dále je možné projekt rozdělit do několika
větví. Můžete tak současně opravovat chyby v naposledy uvolněné verzi
programu a pracovat na nové verzi.
Další výhodou, kterou CVS přináší, je možnost sledovat vývoj
jednotlivých souborů. Každý z uživatelů archivu se může přihlásit ke
sledování souborů projektu. Počet sledovaných souborů není nijak
omezen. Uživatel je potom informován o tom, kdo se souborem právě
pracuje, kdy práci ukončil a kdy odeslal novou verzi do archivu. Dá se
tak předejít mnoha konfliktům, protože se o změnách v archivu dozvíte
včas. Sledování může využít (nebo zneužít?) i šéf celého projektu ke
kontrole, co jeho podřízení vlastně dělají. Jak budou uživatelé
archivu informování o změnách lze nastavit v konfiguraci projektu, v
naprosté většině případů se zprávy posílají elektronickou
poštou.
V konfiguraci archivu je dále možné nastavit, zda se má soubor
před uložením do archivu zpracovat nějakým skriptem nebo
programem. (Tento rys nefunguje příliš dobře u síťových
archivů). Můžete tak před uložením do archivu automaticky komprimovat
velké obrázky a před přenosem k uživateli je zase automaticky rozbalovat,
nebo před uložením nové verze XML dokumentu automaticky provádět
konverzi pomocí stylů do jiného formátu.
|
|
|
Závěr
Týmům, které spolupracují na vývoji nějakého softwaru, nebo
webových stránek, CVS vřele doporučuji. Ušetříte si tak mnoho starostí
a získáte úžasný přehled o vývoji vašeho projektu. Budete schopni
kdykoliv předložit libovolnou verzi projektu, nebo přesně ukázat, co
jste kde měnili. Archiv využijí i ostatní, kdo pracují jen s textovými
soubory: autoři knížek, kteří své knížky sází v TeXu nebo píší v
XML.
Je-li vaše práce založená na spoustě binárních souborů, musíte
se zkusit poohlédnout po jiném typu archivu, než je právě CVS.
Pro:
-
Grafický klient pro většinu operačních systémů
-
Umožní spolupracovat uživatelům různých operačních systémů
-
Cena: GNU programy jsou, jak je dobrým zvykem, zdarma
Proti:
Zdroje:
Nejvíce informací o CVS ,
Grafický klient pro Windows,
Grafický klient v Javě,
Server pro Windows.
|
|
Autorkou tohoto webu je LenkaKT, alias Lenka Kosková-Třísková. Bádám a vyučuji na TU Liberec. |
Poslední změna: 3. 3. 2011
|
|