Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Streda, 9. október 2024
O nás
Magazín
Otvorený softvér
CVS
Služby
Index  »  CVS  »  CVS inštrukcie

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ť.
   

Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok · Odkazový formulár · Prihláška
Upozorniť na chybu na PLATON.SK webstránke · Podmienky použitia · Ochrana osobných údajov