Gentoo Logo

Tutorial CVS Gentoo Linux

Conţinut:

1.  Introducere

O privire de ansamblu

Acest ghid are două parţi. Prima vă arată cum să folosiţi sistemul CVS în postura de non-programator, ex. cum să luaţi sursele din CVS şi să le menţineţi actualizate. A doua parte, este o introducere în folosirea sistemului CVS ca programator, aratându-vă cum să modificaţi, adăugaţi sau să ştergeţi fişiere din CVS şi să întreprindeţi alte activităţi specifice operaţiunilor de dezvoltare a unui program. Dacă sunteţi un începător în CVS, se recomandă să începeţi cu prima parte, iar după aceea să treceţi la a doua; dacă aveţi anumite cunoştinţe de bază despre CVS dar este prima dată când doriţi să folosiţi sistemul CVS ca un programator cu drepturi depline, ar trebui să găsiţi informaţiile dorite în a doua parte, dar aţi putea să vă uitaţi puţin peste prima parte, ca o introducere.

Ce este CVS şi ce face el?

CVS este un sistem client/server care permite programatorilor să stocheze proiectul lor într-o locaţie centralizată, denumită repozitoriu. Folosind utilitarele client cvs, programatorii pot efectua modificări asupra conţinutului repozitoriului. În schimb, repozitoriul cvs urmăreşte fiecare modificare a fişierelor, creând o istorie completă a evoluţiei dezvoltării proiectului. Programatorii pot cere versiuni mai vechi ale unui anumit fişier cod sursă, viziona un log al modificărilor, şi pot efectua alte acţiuni dacă este nevoie.

Rolul sistemului CVS

Multe proiecte opensource deţin propriile servere CVS, care sunt folosite de programatorii proiectului ca un repozitoriu care centralizează toată munca lor. Programatorii adesea efectuează îmbunătăţiri surselor din repozitoriul CVS zilnic; şi deseori, aceşti programatori sunt răspândiţi în jurul lumii, totuşi CVS oferă mecanismul necesar pentru a uni proiectul lor într-un tot centralizat şi coeziv. CVS crează "adezivul organizaţional" care permite acestor programatori să întreprindă îmbunătăţiri codului sursă fără a se încurca unul pe celălalt, pierzând date importante sau omiţând modificările aduse de fiecare asupra unui anumit cod sursă.

CVS -- Cele mai noi surse de la programatori

Când programatorii sunt gata, ei vor adăuga munca lor curenta din CVS într-un fişier .tar.gz şi îl lansează sub postura de versiune nouă oficială a pachetului aplicaţiei acestora. Totuşi, câteodată, cele mai noi versiuni oficiale nu sunt destul de noi, dintr-o mulţime de cauze. În prima parte a acestui ghid, vă voi arăta cum să folosiţi sistemul CVS în acest scop -- să obţineţi cea mai nouă şi cea mai îmbunătăţită versiune a surselor pe care doriţi să le folosiţi.

Instalarea CVS

Pentru a instala cvs, este necesar doar să tastaţi emerge cvs:

Cod 1.1: Instalarea CVS

# emerge cvs

CVSROOT

Înainte să începem, există anumite lucruri fundamentale pe care trebuie să le cunoaşteţi. Primul este acela că pentru a vă putea conecta la un repozitoriu CVS, trebuie să cunoaşteţi o cale numită "CVSROOT". CVSROOT este un şir de caractere, asemenea unui URL, care informează comanda cvs asupra locaţiei repozitoriului la care doriţi să vă conectaţi. Doar pentru a face lucrurile mai interesante, CVS are un număr de formate pentru CVSROOT, depinzînd de faptul că repozitoriul este local sau nu şi ce metodă veţi folosi pentru a vă conecta. Iată câteva exemple de CVSROOT, împreună cu explicaţiile de rigoare...

Un CVSROOT local

Cod 1.2: Setare CVSROOT

CVSROOT=/var/cvsroot

Acesta este un exemplu al unui căi locale CVSROOT; veţi folosi un CVSROOT în modul acesta dacă doriţi să vă conectaţi la un repozitoriu local care există în /var/cvsroot; sau poate aveţi un repozitoriu mount-at via NFS la /var/cvsroot.

CVSROOT la distanţă pentru password server

Cod 1.3: Setarea CVSROOT cu autentificare

CVSROOT=:pserver:cvs@foo.bar.com:/var/cvsroot

Aici avem un exemplu de CVSROOT pentru un repozitoriu la distanţă care se află găzduit la foo.bar.com în directorul /var/cvsroot de pe acel server. Partea ":pserver:" de la început semnalizează clientului dumneavoastră conectarea folosind protocolul CVS password server, un protocol care este integrat în CVS. De obicei, repozitoriile CVS publice folosesc acest protocol pentru a permite accesul utilizatorilor anonimi.

rsh/ssh CVSROOT

Cod 1.4: RSH/SSH CVSROOT

CVSROOT=drobbins@foo.bar.com:/data/cvs

Aici avem un exemplu de CVSROOT care foloseşte protocolul RSH sau SSH; în acest exemplu, serverul CVS va încerca să acceseze repozitoriul de de foo.bar.com folosind contul drobbins. Dacă variabila de sistem CVS_RSH este setată cu valoarea "ssh", atunci clientul cvs va încerca să se conecteze folosind ssh; în caz contrar rsh va fi folosit. Metoda de acces ssh este populară în rândul celor care se preocupa de securitate; oricum, metodele RSH sau SSH nu oferă o modalitate utilizatorilor anonimi de a obţine sursele. Pentru a folosi aceasta metoda aveţi nevoie de un cont de login la foo.bar.com

Încă câteva lucruri...

Pe lângă CVSROOT, mai trebuie să ştiţi numele modulului (colecţia de surse) pe care doriţi să o verificaţi şi parola utilizatorului anonim pentru a vă putea autentifica pe serverul CVS. Spre deosebire de accesul ftp anonim, nu există nici un format "standard" pentru parolă, deci va trebui să obţineţi parola de pe pagina web a proiectului, sau de la un programator implicat în acest proiect. O dată ce aveţi aceste informaţii sunteţi gata pentru a începe.

Lucrul cu CVS, partea 1

Aducerea surselor este un proces ce se desfăşoară în două etape. Prima dată, ne autentificăm pe server. Apoi aducem sursele cu comanda checkout. Urmează un exemplu de comenzi care pot fi folosite pentru a verifica cele mai noi surse de Samba, un proiect popular de integrare UNIX/Windows:

Cod 1.5: Setarea CVSROOT

# export CVSROOT=:pserver:cvs@pserver.samba.org:/cvsroot

Această primă comandă iniţializează variabila CVSROOT. Dacă nu setaţi această variabilă, următoarele două comenzi vor necesita să adăugaţi -d :pserver:cvs@pserver.samba.org:/cvsroot după comanda cvs. Exportând CVSROOT salvaţi din munca de a tasta.

Lucrul cu CVS, partea a 2-a

Aici sunt înşiruite comenzile necesare pentru a obţine o copie curentă a surselor. Puteţi să treceţi peste această înşiruire de comenzi şi să treceţi direct la explicarea lor, iar apoi să reveniţi:

Cod 1.6: Verificarea surselor

# cvs login
(Logging in to cvs@pserver.samba.org)
CVS password: (introduceţi aici parola)

# cvs -z5 co samba
U samba/COPYING
U samba/Manifest
U samba/README
U samba/Read-Manifest-Now
U samba/Roadmap
U samba/WHATSNEW.txt
(aceasta este o trunchiere a rezultatului comenzii CVS)

Lucrul cu CVS -- explicaţia

Prima comandă cvs, vă autentifică pe server, iar a doua spune clientului să verifice (check out - "co") modulul samba folosind un nivel de compresie gzip 5 ("-z5") pentru a creşte transferul în cazul unei legături mai slabe. Pentru fiecare fişier creat local, cvs afişează "U [cale]" indicând faptul că ale fişier a fost copiat pe disc.

Finalizarea verificării

Odată comanda de verificare finalizată, veţi putea găsi un director "samba" în directorul curent care conţine cele mai noi surse. De asemenea veţi observa că toate directoarele au un director "CVS" în ele -- CVS stochează informaţii în ele pe care le foloseşte doar el şi pot fi ignorate. De aici înainte, nu trebuie să ne mai asigurăm că variabila CVSROOT este setată şi nici nu trebuie să o mai specificăm în linia de comandă pentru că este stocată în acele directoare "CVS". Nu uitaţi -- variabila CVSROOT trebui setată doar prima dată când vă autentificaţi.

Actualizarea surselor

Asta e -- surse proaspete! Acum că aveţi sursele, puteţi să le compilaţi şi să instalaţi programul, să îl studiaţi, sau să faceţi orice cu ele.

Oricând după aceea, poate doriţi ca directorul cu surse de pe discul dumneavoastră să fie sincronizat cu versiunea curentă de CVS. Pentru aceasta nu mai trebuie să vă autentificaţi din nou pe server; informaţiile de autentificare sunt deasemenea stocate în directoarele "CVS". Prima data schimbaţi calea către directorul principal în care se află sursele (în cazul nostru "samba") şi tastaţi:

Cod 1.7: Actualizarea surselor

# cvs update -dP

O privire asupra "cvs update", partea 1

Dacă există fişiere noi, cvs va afişa linii de tipul "U [cale]" pentru fiecare fişier imediat după ce este actualizat. De asemenea, dacă aţi compilat sursele va afişa o grămadă de linii "? [cale]" ; aceste sunt fişiere obiect pe care cvs nu le găseşte în repozitoriul la distanţă.

O privire asupra "cvs update", partea 2

De asemenea, observaţi cele două opţiuni din linia de comandă pe care le folosim pentru "cvs update". "-d" indică faptul că cvs va crea orice director nou care a fost adăugat de curând în repozitoriu (acest comportament nu este implicit), şi "-P" indică faptul că cvs va şterge orice director gol din directorul local unde se află sursele. Folosirea "-P" este o ideea bună pentru că cvs are tendinţa de a aduna o grămadă de directoare goale (care au fost o dată folosite, dar acum sunt abandonate) de-a lungul timpului.

Pentru a aduce cele mai noi surse, aceste cunoştinţe vă sunt suficiente. Acum vom vedea cum să interacţionăm cu sistemul CVS în postura de programator.

2.  CVS pentru programatori

Modificarea fişierelor

Ca programator, va trebui să modificaţi fişiere în CVS. Pentru acest lucru, pur şi simplu efectuaţi modificările necesare în copia dumneavoastră locală. Modificările codului sursă nu sunt adăugate repozitoriului doar atunci când îi spuneţi explicit cvs-ului să comită ("commit") modificările dvs. Când aţi testat toate modificările şi sunteţi gata să le adăugaţi la repozitoriu, urmaţi aceşti doi paşi. Prima dată, actualizaţi sursele dumneavoastră tastând următoarea comandă din directorul principal cu sursele:

Cod 2.1: Actualizarea surselor şi directoarelor

# cvs update -dP

CVS concatenează modificările altora

După cum am văzut mai devreme, "cvs update" va actualiza sursele cu versiunile curente din repozitoriu -- dar ce se întâmplă cu modificările pe care le-aţi făcut? Nu vă îngrijoraţi, ele nu sunt şterse. Dacă un alt programator efectuează modificări unui fişier de care dumneavoastră nu v-aţi atins, fişierele dumneavoastră locale vor fi actualizate în aşa fel încât să fie sincronizate cu versiunile din repozitoriu.

Iar dacă aţi modificat liniile 1-10 dintr-un fişier local, iar un alt programator a şters liniile 40-50, a adăugat 12 linii noi la sfârşitul fişierului, a modificat liniile 30-40 iar apoi a adăugat modificările la repozitoriu înaintea dumneavoastră, cvs va concatena inteligent modificările din sursele dumneavoastră locale în aşa fel încât să nu se piardă modificările efectuate local de către dvs. Acest lucru permite a doi sau mai mulţi programatori să lucreze în acelaşi timp pe acelaşi fişier.

Concatenarea nu este perfectă

Totuşi, dacă doi sau mai mulţi programatori au făcut modificări pe aceeaşi regiune a aceluiaşi fişier, atunci lucrurile se complică. Dacă aşa ceva are loc, cvs vă va anunţă că a avut loc un conflict. Nici o modificare nu se va pierde, dar veţi fi nevoit să interveniţi şi să modificaţi manual sursele, deoarece acum cvs aşteaptă răspunsurile dumneavoastră cum privire la modul în care se vor efectua concatenările.

Comiterea

Ne vom ocupa de modul în care conflictele pot fi soluţionate, dar pentru moment să presupunem că nu există conflicte după ce aţi tastat "cvs update -dP" -- de obicei nu există. Fără conflicte, sursele locale sunt actualizate iar acum puteţi să adăugaţi modificările dumneavoastră în repozitoriu, tastând următoarea comandă în directorul principal al modulului:

Cod 2.2: Comiterea modificărilor

# cvs commit

Ce face commit

"cvs commit" nu doar adaugă modificările dumneavoastră repozitoriului. Înainte să adauge modificările, cvs va porni editorul dumneavoastră preferat pentru a putea adăuga o descriere a modificărilor pe care le-aţi întreprins. După ce aţi introdus un comentariu, aţi salvat fişierul şi aţi ieşit din editor, modificările (şi comentariile) vor fi adăugate repozitoriului şi vor fi disponibile celorlalţi programatori din echipa dumneavoastră.

Vizualizarea fişierelor log

Este chiar uşor să vizualizaţi o istorie completă a modificărilor unui anumit fişier, împreună cu orice comentariu pe care programatorii (inclusiv dumneavoastră) le-aţi făcut atunci când le-aţi adăugat. Pentru a vedea aceste informaţii tastaţi:

Cod 2.3: Vizualizarea informaţiilor din fişierele log

# cvs log myfile.c

Comanda "cvs log" este recursivă, de aceea, dacă doriţi să vizualizaţi informaţiile complete pentru un director, doar intraţi în acel director şi tastaţi;

Cod 2.4: Vizualizarea informaţiilor din fişierelor log cu ajutorul unui paginator

# cvs log | less

Opţiuni pentru commit

Poate doriţi să folosiţi alt editor de cel pe care cvs îl porneşte implicit atunci când tastaţi "cvs commit". În acest caz, setaţi variabila EDITOR cu numele editorului preferat. Adăugarea unei asemenea setări în fişierul ~/.bashrc ar fi o idee bună:

Cod 2.5: Definirea editorului preferat

export EDITOR=jpico

De asemenea, puteţi specifica un mesaj ca opţiune în linia de comandă. în acest fel cvs nu va mai porni editorul:

Cod 2.6: Adăugaţi modificările cu un mic mesaj de informare

# cvs commit -m 'Am reparat câteva probleme stupide în portage.py'

Fişierul .cvsrc

Înainte să continuăm să descoperim şi mai multe comenzi cvs, recomand definirea unui fişier ~/.cvsrc. Prin crearea fişierului ~/.cvsrc în directorul, puteţi specifica anumite opţiuni implicite pentru a nu le introduce de fiecare dată. Iată un fişier ~/.cvsrc cu o configurare recomandată:

Cod 2.7: Recomandări pentru definirea opţiunilor implicite

cvs -q  
diff -u -b -B
checkout -P
update -d -P

Fişierul .cvsrc, continuare

Pe lângă a defini opţiuni folositoare pentru tot felul de comenzi cvs. Prima linie din fişierul ~/.cvsrc pune cvs într-un mod "tacut", avantajul acestei opţiuni fiind creşterea consistenţei mesajelor afişate de cvs update. De asemenea, odată ce aţi definit acest fişier, puteţi tasta cvs update în loc de cvs update -dP.

Adăugarea unui fişier repozitoriului

Este foarte uşor să adăugaţi un fişier la CVS. Prima dată, creaţi fişierul cu ajutorul editorului preferat. Apoi tastaţi următoarele:

Cod 2.8: Adăugarea unu fişier

# cvs add myfile.c
cvs server: use 'cvs commit' to add this file permanently

Prin această specificaţi ca fişierul să fie adăugat repozitoriului următoarea dată când tastaţi comanda cvs commit. Până atunci alţi programatori nu vor putea vedea fişierul.

Adăugarea unui director repozitoriului

Procesul de adăugare unui director repozitoriului este similar:

Cod 2.9: Adăugare unui director

# mkdir foo
# cvs add foo
Directory /var/cvsroot/mycode/foo added to the repository

Spre deosebire de adăugarea unui fişier, atunci când adăugaţi un director el apare în repozitoriu imediat; nu este necesar un cvs commit. Odată cu adăugarea unui director local în cvs, veţi observa că un director "CVS" va fi creat în interiorul acestuia pentru a memora în el datele referitoare la istoria directorului. Deci, puteţi spune cu uşurinţă dacă un director a fost adăugat la cvs prin faptul că el conţine un director "CVS"

Note pentru "cvs add"

Ah, şi după cum cred că aţi ghicit, înainte de a adăuga un fişier sau un director repoztoriului, trebuie să vă asiguraţi că directorul părinte a fost deja adăugat la CVS. Altfel, veţi primi o eroare care arată în felul următor:

Cod 2.10: Adăugarea unui fişier, dar cu producerea unei erori

# cvs add myfile.c
cvs add: cannot open CVS/Entries for reading: No such file or directory
cvs [add aborted]: no repository  

Să ne familiarizăm cu "cvs update", partea 1

Înainte să vedem cum să rezolvăm conflictele, să ne familiarizăm cu mesajele afişate de comanda "cvs update". Dacă aţi creat un fişier ~/.cvsrc care conţine linia "cvs -q", veţi vedea că mesajele afişate de "cvs update" sunt mai uşor de citit. "cvs update" vă informează asupra a ceea ce face prin tipărirea unui singur caracter, spaţiu, un nume de fişier; de exemplu:

Cod 2.11: Actualizare CVS

# cvs update -dP
? distfiles
? packages
? profiles 

Să ne familiarizăm cu "cvs update", partea a 2-a

"cvs update" foloseşte caracterul "?" pentru a ne informa asupra faptului că nu ştie nimic despre fişierele pe care le găseşte în copia locală a repozitoriului. Ele nu sunt parte din repozitoriu, nici nu au fost programate pentru a fi adăugate. Aici este o listă cu alte caractere care apar în mesajele informaţionale pe care CVS le foloseşte:

Cod 2.12: Mesaj informaţional: U

U [cale]

Folosit când un fişier nou este creat în repozitoriul local, sau un fişier de neatins (pentru dumneavoastră) a fost actualizat.

Cod 2.13: Mesaj informaţional: A

A [cale]

Acest fişier este programat pentru a fi adăugat şi va fi adăugat oficial repozitoriului atunci când veţi tasta cvs commit.

Să ne familiarizăm cu "cvs update", partea a 3-a

Cod 2.14: Mesaj informaţional: R

R [cale]

La fel ca şi "A", "R" vă informează că fişierul este programat pentru ştergere. Fişierul va fi şters de îndată ce veţi tasta cvs commit.

Cod 2.15: Mesaj informaţional: M

M [cale]

Aceasta înseamnă că acest fişier a fost modificat de dumneavoastră; de asemenea, este posibil ca noile modificări din repozitoriu să fie concatenate în acest fişier cu succes.

Cod 2.16: Mesaj informaţional: C

C [cale]

Caracterul "C" indică faptul ca a apărut un conflict şi este necesară să reparaţi manual această problemă înainte de a putea folosi comanda "cvs commit".

Introducere în rezolvarea conflictelor

Acum, să analizăm modul în care se poate rezolva un conflict. Eu sunt foarte mult implicat în proiectul Gentoo Linux, şi avem propriul nostru server cvs la cvs.gentoo.org. Noi programatorii ne petrecem cea mai mare parte a timpului modificând sursele modulului "gentoo-x86". În interiorul modulului gentoo-x86, avem un fişier numit "ChangeLog" care găzduişte (cred că aţi ghicit) o descriere a schimbărilor majore pe care le efectuăm asupra fişierelor din repozitoriu.

Un exemplu de conflict

Deoarece acest fişier este modificat aproape de fiecare dată când un programator aduce o schimbare majoră în CVS, este o sursă de conflicte -- iată un exemplu de conflict. Să presupunem că adaug următoarele linii la începutul fişierului ChangeLog:

Cod 2.17: ChangeLog modificare

data 25 Feb 2001
 
Această linie am adăugat-o eu

Să presupune că inainte ca eu să pot adăuga aceste trei linii, alt programator adaugă următoarele trei linii la începutul fişierului ChangeLog şi adaugă modificările făcute de el:

Cod 2.18: ChangeLog modificare 2

data 25 Feb 2001
 
Această parte este adăugată de un alt programator

Un exemplu de conflict, continuare

Acum, când o sa rulez cvs update -dP (ceea ce trebui să fac înainte oricărei adăugări), cvs nu va putea concatena modificările în copia mea locală de ChangeLog deoarece amândoi am adăugat linii în aceeaşi parte a fişierului -- de unde să ştie cvs care versiune să o folosească? CVS îmi afişează următorul mesaj:

Cod 2.19: eroare CVS

RCS file: /var/cvsroot/gentoo-x86/ChangeLog,v
retrieving revision 1.362
retrieving revision 1.363
Merging differences between 1.362 and 1.363 into ChangeLog
rcsmerge: warning: conflicts during merge
cvs server: conflicts found in ChangeLog
C ChangeLog

Rezolvarea conflictelor, partea 1

Ah -- un conflict! Din fericire, rezolvarea conflictelor este uşoară. Dacă îmi pornesc editorul de text, voi vedea următorul text la începutul fişierului ChangeLog:

Cod 2.20: conflict ChangeLog

<<<<<<< ChangeLog
date 25 Feb 2001
 
Această linie am adăugat-o eu
 
=======
date 25 Feb 2001
 
Această parte este adăugată de un alt programator
 
>>>>>>> 1.363

Rezolvarea conflictelor, partea 2

În loc de a alege o anumite versiune în favoarea celeilalte, cvs a adăugat ambele versiuni fişierului ChangeLog, şi a folosit caractere speciale ca separatori pentru a scoate în evidenţă conflictul. Acum, mă priveşte cum voi modifica această porţiune cu textul care ar trebui să apară în ChangeLog; în acest caz, textul cu care va fi înlocuit nu este nici decum una dintre versiuni, ci o combinaţie între cele două:

Cod 2.21: Intrare din ChangeLog

date 25 Feb 2001

Această linie am adăugat-o eu
 
Această parte este adăugată de un alt programator

Acum că am înlocuit regiunea cu conflict din fişier cu textul necesar (şi am înlăturat marcajele "========", etc), pot adăuga modificările mele la cvs fără probleme.

Ponturi în rezolvarea conflictelor

Atunci când sunteţi nevoiţi să modificaţi un fişier pentru conflicte asiguraţi-vă că aţi parcurs întreg fişierul pentru a putea vizualiza eventualele conflicte; dacă aţi omis un anumit conflict cvs nu vă va permite să adăugaţi fişierul, doar atunci când toate conflictele sunt soluţionate! Este de asemenea evident, şi foarte important să înlăturaţi caraterele speciale de delimitare a conflictelor. Un alt pont -- dacă modificaţi greşit fişierul în care a avut loc un conflict iar apoi ("D'oh!") accidental salvaţi fişierul cu modificările greşite, puteţi găsi o copie originală a versiunii dorite în fişierul ".#numefişier.versiune".

Înlăturarea unui fişier

Acum este momentul să învăţaţi ultima acţiune CVS -- înlăturarea (ştergerea) fişierelor din repozitoriu. Ştergerea unui fişier este un procedeu ce se desfăşoară în două etape. Prima dată ştergeţi fişierul din copia locală a surselor, iar apoi tastaţi comanda pentru a înlătura un fişier cvs remove:

Cod 2.22: Înlăturarea unui fişier

# rm myoldfile.c
# cvs remove myoldfile.c

Înlăturarea unui fişier, continuare

Fişierul va fi programat pentru înlăturare din repozitoriu pentru următoarea dată când veţi folosi cvs commit. O dată trimisă comanda, fişierul va fi şters oficial din versiunea curentă a repozitoriului. Oricum, cvs nu va arunca acest fişier, şi în continuare va ţine un registru cu conţinutul şi istoria lui, în caz că veţi avea nevoie de el în viitor. Aceasta este doar una dintre multiplele metode pe care cvs le utilizează pentru a vă proteja codul sursă.

Comanda cvs remove este recursivă, ceea ce înseamă că puteţi şterge mai multe fişiere. Apoi trebuie doar să rulaţi comanda cvs remove fără nici un argument din directorul părinte. Acest lucru va face ca toate fişierele şterse din acel director să fie marcate pentru înlăturate la următoarea comandă cvs commit.

Înlăturarea unui director

Dacă doriţi să ştergeţi un director întreg, recomand următorii paşi. Prima dată, ştergeţi toate fişierele iar apoi executaţi "cvs remove" în directorul respectiv:

Cod 2.23: Înlăturarea unui director

# rm *.c
# cvs remove

Înlăturarea unui director, continuare

Apoi, comiteţi:

Cod 2.24: Adăugaţi modificările

# cvs commit

Aici intervine trucul. Urmaţi aceşti paşi pentru a şterge directorul:

Cod 2.25: Înlăturarea unui director

# cd ..
# cvs remove mydir
# rm -rf mydir

Observaţi că înlăturarea directorului nu a necesitat o altă adăugare -- directoarele sunt adăugate şi înlăturate din repozitoriu în timp real.

Gata!

Introducerea dumneavoastră în CVS este completă -- Sper ca aces ghid v-a fost de folos. Mai este mult de învăţat despre CVS, lucruri pe care nu le-am putut cuprinde în acest ghid introductiv, dar există din fericire multe resurse valoroase pentru CVS, pe care le puteţi folosi pentru a aprofunda în CVS:

Despre acest document

Versiunea originală a acestui articol a fost publicată de IBM developerWorks, şi este proprietatea Westtech Information Services. Acest document este o actualizare a documentului original şi conţine diferite îmbunătăţire aduse de echipa de documentaţie Gentoo Linux.



Imprimare

Actualizat la 23 Mai 2005

Versiunea originală a acestui document a fost actualizată ultima dată la 20 Mai 2008

Sumar: Acest ghid introduce cititorilor sistemul CVS (Concurrent Versions System), folosit de dezvoltatorii de aplicaţii din toată lumea pentru dezvoltarea programelor într-un mod flexibil şi colabarativ. Destinat începătorilor în CVS, acest ghid încearcă să aducă atât utilizatorilor obişnuiţi cât şi noilor programatori o metodă de a creşte productivitatea muncii. Fie că vă place să folosiţi sistemul CVS pentru a "verifica" ultima versiune a unui anumit program, fie că doriţi să începeţi să folosiţi sistemul CVS asemena unui programator avansat, acest ghid este pentru dvs.

Daniel Robbins
Autor

Xavier Neys
Editor

Adi Roiban
Translator

Donate to support our development efforts.

Copyright 2001-2012 Gentoo Foundation, Inc. Questions, Comments? Contact us.