CVS - I

4-dílný seriál o SCM systému CVS, který má za cíl popsat základní principy práce s tímto systémem. Úvod, filosofie CVS, založení prvního projektu.

22.11.2010 00:00 | Miloslav Ponkrác | přečteno 8277×

Úvod

Tento seriál slouží jako úvod do SCM systémů. Seriál popisuje konkrétně starší systém na správu verzí CVS, ale mnoho principů může být užito i na jiných SCM.

Pokud to myslíte s prací na nějakém projektu opravdu vážně, po nějaké době začnete vyciťovat potřebu nějakého programu, který vám udělá pořádek ve vašem projektu. Program, který zařídí, aby jste si nejnovější verzi nějakého textu, programu, obrázku, či čehokoli jiného nepřepsali starší verzí. Snad každý takto přišel občas o práci, která mu zabrala dlouhý čas. Kromě toho se občas stane, že naopak zjistíte, že byste se potřebovali vrátit ke starší verzi, protože čas ukázal, že je lepší, než novější. Ale co s tím? Schraňovat mnoho starých verzí, kdyby náhodou? A to už vůbec nemluvím o tom, pokud byste na projektu měli dělat dva, či vás pracovat desítky lidí na tom samém projektu? Jak potom zabránit zmatku?

Protože tyto problémy měli lidé již dlouho, začaly vznikat různé programy na správu projektů. A tento článek by měl být o léty prověřeném programu, který sám používám, a který si nemohu vynachválit. Jedná se o CVS, což je anglická zkratka Concurent Version System. Tento systém má za sebou dlouhý vývoj, je k dispozici na většinu platforem, mimo jiné i na Windows, Linux, OS/2 a mnohé další. Tímto systémem byly řízeny mnohé projekty.

CVS je zdarma ke stažení na stránkách Cyclic Software. Uživatelé linuxových distribucí jej mohou nainstalovat pomocí instalatorů v distribucích - balíček cvs.

Např. Debian,Ubuntu: apt-get install cvs; Fedora: yum install cvs; atd.

Snad jenom upozornění, tento dokument je psán tak, že pokud chcete začít pracovat se systémem CVS, a nebo ho jenom vyzkoušet, nemusíte ho číst celý. Následující kapitoly vás provedou krok za krokem nejnutnějšími kroky, které musíte udělat. Začínám tím, kde program cvs získat, jak ho nainstalovat, jak vytvořit nový projekt, a jak v něm spravovat váš první projekt. Pokud chcete systém CVS používat opravdu jen na nejjednodušší správu projektů, a pracujete na projektu sám, stačí vám toto nezbytné minimum. Pokud potřebujete spravovat projekt ve více lidech, bude nezbytné si přečíst ještě minimálně alespoň kapitolu o práci ve vícečlenném týmu. Zbylé kapitoly vám umožní používat systém CVS s lehkostí a jistotou.


Filozofie práce se systémem CVS

Tato kapitola o filozofii práce se systémem CVS zde původně nebyla. Vzhledem ke zkušenostem s lidmi, kteří začali používat CVS podle tohoto dokumentu jsem později zjistil, že patří mezi nejdůležitější. Proto vás prosím, přečtěte si tuto kapitolu důkladně. Velice Vám usnadní pochopení dalšího textu.

První je potřeba pochopit, že systém CVS slouží jako systém, který dohlíží nad skupinu souborů nazývaných projekt. Systém CVS je schopen udržet pořádek v této skupině souborů a nejenom to. Umožní Vám, aby jste se třeba kdykoli vrátili ke starší verzi. Není třeba problém chtít po CVS, aby mi nahrál do adresáře stav projektu třeba 1.ledna 1999 o půlnoci. Umožní vám, aby do skupiny souborů (projektu) dělalo zásahy a změny více lidí. Je možné například vyvíjet souběžně více verzí, což je často potřeba. Představte si třeba, že vyvíjíte informační systém, který jste v první verzi dodali zákazníkovi. Mezitím začnete vyvíjet druhou verzi informačního systému. Poté zákazník objeví několik chyb v první verzi, a požaduje opravu. Je jasné, že mu nedáte nestabilní druhou verzi, která se teprve vyvíjí (tedy jste-li profesionálové), ale uděláte opravy nad první verzí. A nyní tu máte souběžně dvě větve projektu. Jedna vede k vývoji stabilní odladěné první verze, a druhá k vývoji zatím nedokončené druhé verze. A systém CVS toho dokáže daleko více.

Na druhé straně je potřeba pochopit, že systém CVS je především systém správy různých verzí souborů. Je zbytečné od něj chtít například přeložit hotový program, na to existují jiné nástroje. Ale určitě vám zaručí, že v programu vám nevzniknou chyby jenom proto, že někdo přeložil starší modul. Systém CVS také neprovádí testování programu, ani nenahrazuje vedoucího projektu.

V systému CVS se pracuje na několika úrovních. Přesněji řečeno, práce se systémem CVS je myšleně rozdělena do několika celkem oddělených kategorií. V zásadě jde o vytvoření nového projektu, administrace projektu, a potom akce, které umožňují rutinní práce. Rutinní prací myslím získání aktuální verze (případně jiné) verze projektu, a poté nahrání nové verze do systému CVS.


Kde a jak získat systém CVS

Při používání systému CVS si můžete vybrat, zda budete s tímto systémem komunikovat pomocí příkazové řádky, a nebo pomocí grafického rozhraní. Je také možné obojí kombinovat.

V linuxových distribucích nejspíše provedete instalaci pomocí grafického nebo textového nebo řádkového rozhraní a budete instalovat balíček cvs.

V případě, že si chcete CVS stáhnout ručně nebo jeho zdroje, tak je možné udělat ze stránek projektu.

Pokud chcete spravovat CVS pomocí grafického prostředí, potom existuje vícero systémů, jejichž popis není součástí tohoto manuálu (alespoň s tím zatím nepočítám). Tuším, že grafické prostředí v pozadí volá CVS s příkazovou řádkou.

Podpora CVS je také integrována s různými vývojovými prostředími. Namátkou uvedu Eclipse IDE, Netbeans, Anjuta,....

V dalším textu budu předpokládat, že budete ovládat systém CVS pomocí příkazové řádky. Jednak je toto ovládání jednotné, a přitom nijak složité a umožňuje Vám přitom plnou kontrolu nad systémem. Ovládání pomocí grafické nadstavby se liší podle platformy, na které budete systém používat, a také podle použité grafické nadstavby.


Inicializace systému CVS

Nyní je potřeba zvolit adresář, ve kterém si bude CVS systém uchovávat informace o projektech. Je lépe zvolit jiný adresář, než ve kterém je umístěn vlastní program cvs. Volba umístění adresáře závisí na tom, jakým způsobem budete chtít projekty řídit. Pokud chcete řídit projekty vlastní, asi nejlepší je zvolit adresář na vašem lokálním disku. Pokud chcete řídit vývoj projektů ve Vaší firmě, je dobré umístit jej na server Vaší lokální sítě. A pokud chcete vyvíjet například společný projekt po internetu, je vhodné jej umístit na FTP server. Důležité je, aby všichni, kdo se účastní na projektu, mohli z tohoto adresáře číst i zapisovat. Jsou samozřejmě možné i jiné varianty, například adresář s informacemi o projektech může mít na svém lokálním disku vedoucí projektu, a lidé, kteří se účastní projektu si čas od času přijdou nahrát do systému CVS svoji práci a odnést si změny, které provedli druzí. Je možnost zvolit mnoho jiných variant. Je potřebné se také zamýšlet nad otázkou bezpečnosti. Pokud například nechcete povolit přístup k projektu nepovolaným, je potřeba jej neumísťovat na veřejném FTP serveru, v lokální síti by do adresáře s informacemi o projektu neměli mít přístup nepovolaní, apod.

Pro počáteční vyzkoušení systému CVS je asi nejlepší umístit adresář s informacemi na lokální disk. Zvolíme tedy adresář pro data. Pro Unix jej v rámci ukázky zvolím asi jako $HOME/cvsroot, pro Windows třeba jako c:\cvsroot. Pro instalaci je potřeba udělat ještě dvě akce, a to přidat program cvs do cesty pomocí proměnné PATH, abychom mohli program cvs spouštět z jakéhokoli adresáře. A nastavit proměnnou CVSROOT, ve které bude zapsána plná cesta k adresáři pro data systému CVS.

Konfigurace pro Linux

Nastavíme proměnnou CVSROOT na adresář, kde máme data s informacemi. Buď v konsoli pomocí příkazu export CVSROOT=$HOME/cvsroot - pouze pro dobu, kdy jsme přihlášení v terminálu. Anebo zapíšeme tento příkaz do souboru ~/.bash_profile anebo ~/.bashrc pro trvalou změnu.

Konfigurace pro Windows

Nejlepší cesta, jak nastavit obě proměnné, je v případě Windows zapsat je do souboru AUTOEXEC.BAT, v případě Unixu do .profiles.

Úpravy v AUTOEXEC.BAT (pro Windows):
Na konec souboru AUTOEXEC.BAT přidat následující dva řádky. Poté uložit a restartovat.

set CVSROOT=:local:c:\cvsroot
set PATH=c:\cvs;%PATH%

V této chvíli je tedy potřeba vytvořit adresář pro data programu. Jde jenom o to, že adresář c:\cvsroot (pro Windows), případně $HOME/cvsroot (v případě Unixu) musí existovat. Pokud neexistuje, vytvoříme ho, ať už pomocí příkazu mkdir (pracuje jak ve Windows, tak v Unixu), a nebo jinak. Máme tedy vytvořen prázdný adresář pro data projektu.

V případě, že Vás zajímá další konfigurace CVS jako například instalace pro běh na síti anebo konfigurace přístupů, prohlédněte si tento anglicky psaný tutoriál.

Teď je nutné inicializovat adresář pro data. To slouží k tomu, aby si systém CVS vytvořil potřebné soubory pro správu projektů. Provádí se to příkazem:

cvs init

V této chvíli máme systém CVS připravený k používání.


Založení prvního projektu v systému CVS

V této chvíli máme systém CVS připravený ke správě libovolného množství projektů. Dále je potřeba do něj jednotlivé projekty "nasázet". Systém CVS můžete použít ke správě například tvorby vašeho Webu, k řízení programátorského projektu, či jiného projektu. Záleží na tom, co potřebujete. Předem je ale potřeba říci, že se jedná o systém ke správě verzí. Dokáže tedy velmi dobře udržovat pořádek v různých verzích, i když na projektu pracuje mnoho lidí, ale rozhodně není určen pro překladání programů do binární podoby apod.

Předpokládejme tedy, že budeme vytvářet webovskou stránku. Tento projekt si nějak pojmenujeme, například prvniprojekt. Vytvoříme si někde adresář, který si může jmenovat naprosto jakkoliv. Jméno adresáře dokonce nemusí mít vůbec nic společného s názvem projektu, jenom do něj překopírujeme vše, co již na tomto projektu máme hotovo. Pokud začínáme, a nemáme zatím nic, nechme adresář prázdný. Důležité je, aby v tomto adresáři byly pouze soubory, které se týkají našeho projektu. Soubory mohou být rozdělené do podadresářů. Pro začátek doporučuji, aby se jednalo pouze o textové soubory (tedy texty, HTML stránky, zdrojové kódy programů, skripty, apod.). Ostatní soubory zatím do adresáře neumísťujte, přidáme je později, potřebují trochu odlišný způsob. Zadání projektu prvniprojekt do systému CVS provedeme ve dvou krocích:

1. Přesuneme se do adresáře, kde je vše co patří k projektu. Jak již bylo napsáno výše, pokud začínáme s projektem, může se jednat i o prázdný adresář.

2. Z tohoto adresáře spustíme příkaz:

cvs import -m "zalozeni projektu" prvniprojekt poc-tym poc-verze

Vysvětlím, co znamenají podrobněji části výše uvedeného příkazu. Slovo import znamená příkaz, který systém cvs vyzývá k založení nového projektu. Zároveň mu říká, aby do tohoto projektu zavedl všechny soubory, které objeví v aktuálním adresáři (zjistíte příkazem cd ve Windows, případně pwd v Unixu). Do projektu se také přidají všechny podadresáře, a soubory v těchto podadresářích. Volba -m říká systému CVS, že chceme připsat poznámku, která je uvedena v uvozovkách za touto volbou. Musím podotknout, že poznámku v tomto případě systém CVS vyžaduje, a pokud mu ji nezadáte volbou -m v příkazovém řádku, systém CVS spustí editor, kde mu ji můžete zadat. Slovo prvniprojekt je název projektu. Další dvě slova značí jméno týmu a jméno počáteční verze, tam můžete zadat cokoli, třeba zrovna poc-tym, nebo poc-verze.

Pokud jste se dostali až sem, a spustili příkaz, obvykle systém CVS vám nejdříve ukáže průběh načítání souborů do projektu, a potom napíše něco v tom smyslu, že "No conflicts" a ještě něco dalšího. Založili jste úspěšně projekt do systému CVS.

Teď bude dobré smazat adresář, ze kterého jsme spustili CVS, a zkopírovali soubory patřící k projektu. Protože zatím se systémem začínáte, nezapoměňte si soubory zálohovat! Systém CVS je prověřený a celkem spolehlivý, ale je potřeba s ním umět pracovat.

Licence: Tento dokument lze volně šířit pro nekomerční účely, bude-li zachováno jméno autora a copyright. Pro komerční účely pouze s písemným svolením autora.

Seriál daroval: Astrolog Ing. Miloslav Ponkrác, www.ponkrac.net.

Online verze článku: http://www.linuxsoft.cz/article.php?id_article=1737