Jiří Kosek ml.
Webové projekty, které naše firma vytváří jsou stále složitější, a často na jednom projektu pracuje několik lidí najednou. Existuje nějaký software, který by umožnil práci více lidí na jednom projektu a zároveň zaručoval konzistenci celého projektu?
Programových produktů, které k podobným účelům dobře poslouží, je několik. Asi nejpoužívanější z nich je CVS (Concurrent Versions System). Přednosti tohoto produktu denně oceňuje mnoho vývojářů. Pro příklady známých programů, které jsou vyvíjeny s pomocí CVS, nemusíme chodit daleko. Zdrojové texty Mozilly (Netscape Navigatoru) zabírají 250 MB a zároveň na nich pracuje několik desítek vývojářů. Pro správu celého projektu se používá právě CVS. Další projekty, které používají CVS jsou například FreeBSD, Apache a PHP.
Kromě nesporných technických kvalit je velkou výhodou CVS jeho cena. CVS je zdarma šířeno v rámci GNU licence a můžete si ho stáhnout z adresy http://www.cyclic.com. Další dobrou zprávou je, že CVS existuje jak ve verzi pro Unix, tak ve verzi pro Windows.
Podívejme se nyní na to, co nám použití CVS přinese. CVS je mimo jiné i systémem pro správu verzí. U každého souboru, který má CVS pod svou kontrolou, máme tedy k dispozici přehled všech předchozích verzí souboru. Pokud například vyvíjíme velký web-site s mnoha skripty a po provedení nějakých větších úprav v něm zjistíme závažnou chybu, nemusíme vše vracet ručně. Z repozitáře CVS si jedním příkazem vyzvedneme poslední funkční verzi a zveřejníme ji na Webu do doby, než opravíme nově vzniklé chyby.
CVS nám umožňuje získat verzi našeho projektu zpětně k jakémukoliv datu. Pokud tedy náš šéf pochybuje o produktivitě naší práce, můžeme mu předvést, jak se výsledky naší práce vyvíjely měsíc po měsíci.
Druhou významnou oblastí, kde CVS nabízí vývojářům pomocnou ruku, je možnost současné práce několika vývojářů na jednom projektu. V repozitáři CVS je uložena historie všech verzí souborů (zdrojových kódů programů, HTML stránek, skriptů, obrázků apod.). Každý vývojář, který chce na projektu pracovat, si pomocí klientského programu CVS do svého adresáře uloží kopii všech souborů projektu. Poté v lokálních souborech provádí úpravy, které následně odešle zpět do repozitáře. Pokud v upravovaných souborech nikdo jiný nedělal žádné změny, je do repozitáře přidána nová verze souborů. Pokud se některý ze souborů změnil, pokusí se CVS automaticky sloučit úpravy obou vývojářů -- ve většině případů úspěšně. Pokud však vývojáři nezávisle na sobě pozmění stejnou část souboru, spustí CVS editor, kde si autor ručně vybere, která z verzí souboru platí a provede v něm příslušné úpravy.
Klíčovým místem v CVS je repozitář, kam se ukládají všechny verze souborů. Pokud s CVS pracují vývojáři v rámci jedné lokální sítě, stačí repozitář umístit na nějaký sdílený síťový disk. Pokud na projektu pracují vývojáři z větší oblasti a mají přístup pouze k Internetu, použije se CVS server. CVS server běží na počítači s repozitářem a na základě požadavků, které přijdou po síti, provádí operace se soubory v repozitáři.
Příkazy CVS lze zadávat z příkazové řádky. Například příkazem
cvs commit
zaneseme naše úpravy v souborech do
repozitáře. Příkazem cvs update
si naopak
z repozitáře natáhneme do svého pracovního adresáře změny
ostatních vývojářů.
Výhodou všech uvedených příkazů je, že nepřesouvají všechny soubory projektu, ale pouze ty, které byly modifikovány. Není tak problém po pomalé modemové lince pohodlně zaktualizovat web-site u poskytovatele připojení na druhém konci světa.
Pokud nejsme velkými přáteli příkazové řádky, nemusíme ještě CVS zatracovat. Pro mnoho vývojových prostředí a programátorských editorů (např. pro Emacs) existuje podpora CVS. Stiskem jedné klávesy pak odešleme aktuální soubor do repozitáře. K dispozici je i klient pro Windows -- WinCVS, který nám všechny funkce přináší v přehledném grafickém prostředí. Existují i sady skriptů, které zpřístupní repozitář pomocí webového rozhraní. Záleží jen na vás, kterému způsobu práce dáváte přednost.
Pokud se jen trochu vážně zabýváte vývojem webových stránek a aplikací, určitě si pořiďte nějaký systém pro správu verzí. Pokud si vyberete právě CVS, určitě neprohloupíte. CVS je systém ověřený dlouholetým používáním na mnoha významných projektech.