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.