CVS inštrukcie
Tento dokument je stručný úvod do používania systému CVS (Concurrent Versions System). Ani zďaleka nepokrýva celú problematiku. Jeho účelom je poskytnúť základný obraz práce s CVS pre ľudí, ktorý sa zatiaľ s týmto systémom na správu projektových súborov nestretli.
PRIHLÁSENIE
Pred začatím práce so systémom CVS je nutné sa prihlásiť. Na toto slúži príkaz cvs login :
cvs -d :pserver:anonymous@cvs.platon.sk:/home/cvs login
Aby nebolo vždy nutné písať parameter za prepínačom
-d , stačí si napríklad v inicializačnom súbore $HOME/.bashrc nastaviť premennú prostredia CVSROOT na príslušnú hodnotu:
export CVSROOT=:pserver:anonymous@cvs.platon.sk:/home/cvs
Pokiaľ používate iný príkazový interpreter (shell) ako je bash , je nutné vykonať nastavenie premennej CVSROOT prislúchajúcim spôsobom. Po tom, čo je premenná prostredia CVSROOT inicializovaná, stačí na prihlásenie použiť iba príkaz cvs login .
Pokiaľ ste už raz úspešne prihlásený do CVS, nie je nutné sa odhlasovať. Treba však mať na pamäti, že heslo, ktoré bolo zadané po príkaze cvs login , sa uložilo do súboru $HOME/.cvspass a je kryptované veľmi slabou až triviálnou šifrou. Takže po kompromitácii používateľského účtu získava útočník aj prístup do príslušných CVS archívov.
ODHLÁSENIE
Na odhlásenie zo systému CVS sa používa nasledovný príkaz:
cvs logout
Proces odhlásenia znamená, že sa zo súboru $HOME/.cvspass odstráni triviálne zakryptované heslo. Toto heslo sa posiela sieťou pri každom spojení s CVS serverom.
STIAHNUTIE PROJEKTU
Na stiahnutie všetkých projektov z CVS slúži príkaz:
cvs checkout .
Pokiaľ máte záujem o stiahnutie len jedného konkrétneho projektu, použite tento príkaz:
cvs checkout <projekt>
Namiesto <projekt> dosaďte príslušné meno projektu. Aké projekty je možné stiahnuť a pod akým názvom (tzv. aliasy a moduly) sa dá zistiť týmto príkazom:
cvs checkout -c
AKTUALIZÁCIA PROJEKTOV
Je bežnou a pomerne častou záležitosťou, že vývojári spravia v projekte nejaké zmeny. Preto je vhodné z času na čas vykonať aktualizáciu projektových súborov. Doslova nutnosťou to je pre samotných vývojárov vždy pred začatím práce na projekte, resp. niekedy aj počas nej. Ideálne je totiž pracovať s aktuálnou kópiou zdrojových súborov. To sa zabezpečí príkazom:
cvs update
Najlepšie je tento príkaz spúštať v adresári, kde je stiahnutý nejaký projekt z CVS.
VKLADANIE ZMIEN DO CVS
Pokiaľ vývojár projektu vykoná nejaké zmeny, ktoré sú dobré, potom má pravdepodobne záujem dať ich aj do CVS ako ďalšiu verziu nejakého súboru alebo súborov. Tým že súbor zmenil u seba sa ešte nič nestalo a nik o týchto nových zmenách nevie. Pre vloženie týchto modifikácií do CVS sa v adresári kde k zmenám došlo zadá príkaz:
cvs commit
Po zadaní príkazu by sa mal spustiť nastavený editor (export CVSEDITOR=vim ). Tam je nutné napísať komentár popisujúci vykonané zmeny. Vďaka nemu budú mať ostatní vývojári (a neskôr aj ten, kto zmeny vykonal) prehľad o význame a účele úprav. Komentár sa píše v jazyku na ktorom sa dohodnú vývojári projektu. Pre projekty otvoreného softvéru sa preferuje angličtina.
Po uložení dočasného súboru s komentárom a ukončení práce s textovým editorom začne samotný "commit". Ak bolo niečo spravené nesprávne, môže sa vyskytnúť chyba pri vkladaní zmien do CVS. Najčastejšou je absencia prístupových práv na zápis. Pokiaľ sa chyba nevyskytne, za normálnych okolností CVS vypíše informácie o tom, že vznikla nová verzia súboru a podobne.
Ak zadáte len cvs commit , CVS vyhľadá všetky zmodifikované súbory v aktuálnom adresári a podadresároch. Zadaný komentár k zmenám bude teda platiť pre všetky menené súbory. Niekedy môže byť žiadúce vložiť zmeny iba v niektorých súboroch, prípadne niektoré s jednou správou, iné súbory zase s inou správou. Preto sa pre vloženie zmien iba vo vybraných súboroch používa príkaz:
cvs commit <zoznam_súborov>
Existuje taktiež možnosť vložiť zmeny iba s krátkou správou, ktorá bude zadaná priamo do príkazového riadku pomocou prepínača -m . Textový editor sa v tomto prípade spúšťať nebude.
cvs commit -m "Headers update." file.h file.c Makefile
PREZERANIE LOGOV
Komentáre napísané pri operácii cvs commit sa dajú pozerať príkazom:
cvs log <súbor>
Vo výstupe je presne napísané kto, čo, kedy, ako a prečo menil, takže je ihneď prehľad o tom ako sa narábalo s daným súborom. Preto je vhodné snažiť sa písať komentáre ako zmysluplné rozvité vety.
Príklad menej vhodného CVS komentára:
cvs commit -m "Version changed." configure.in
Príklad vhodnejšieho CVS komentára:
cvs commit -m "Version changed from version 0.6rc3 to 0.6." configure.in
PREZERANIE ZMIEN
Pre každý súbor alebo projekt možno zistiť, aké konkrétne riadky boli pri príslušnom vložení zmien do CVS (cvs commit ) modifikované. To je vhodné napríklad keď sa vytvára tzv. "patch". Ten obsahuje len reálne zmeny v súbore, preto môže byť použitý na rýchle zverejňovanie opráv chýb alebo aktualizácií.
Chceme napríklad vytvoriť taký "patch", aby jeho aplikáciou na zdrojový súbor file.c verzie 1.123 získal používateľ ten istý zdrojový súbor verzie 2.34 . Pre tento zámer je možné používať príkaz cvs diff :
cvs diff -u -r 1.123 -r 2.34 file.c > file.c-1.123-2.34.patch
Používateľ potom aplikuje "patch" na svoj zdrojový súbor nasledujúcim príkazom:
patch -p0 < file.c-1.123-2.34.patch
Rozdiely je možné získať aj medzi verziami súboru na základe zadaného dátumu:
cvs diff -D yesterday file.c
ĎALŠIE PRÍKAZY
Ďalšími príkazmi sú napríklad cvs tag , cvs rtag , cvs admin a podobne. Pri nesprávnom použití však môžu narobiť viac škody ako úžitku, či dokonca vykonať nevratné zmeny. Preto pre začiatočníkov s CVS odporúčame tieto príkazy zatiaľ nepoužívať a neskúšať.
|