Controlul versiunilor

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Controlul versiunilor (din engleză: version control sau revision control) este un domeniu software care se ocupă cu gestionarea mai multor versiuni (numite și revizii) ale unor fișiere. Este aplicată cu predilecție în programare, cu scopul de a păstra versiuni succesive ale codului sursă al unui program de calculator. O soluție ar fi arhivarea separată și completă a fiecărei versiuni a programului într-o bază de date (pe un purtător de date extern), dar această metodă ar necesita în general prea mult spațiu de memorie. În locul ei se utilizează tehnici speciale, care reduc memoria totală necesară și care facilitează reconstrucția „în zbor”, la cerere, a oricărei versiuni din istoria programului.

Istorie[modificare | modificare sursă]

Istoria uneltelor de Control al versiunilor poate fi impartita in trei generatii:

Prima generatie[modificare | modificare sursă]

Prima generatie de unelete pentru controlul versiunilor foloseau/versionau cate un singur fisier si nu aveau o corespundere intre diferite fisiere din repository. Acestea nu aveau suport pentru retea.

Exemple de astfel de unelte: Source Code Control System (SCCS), Revision Control System (RCS).

A doua generatie[modificare | modificare sursă]

A doua generatie de unelete pentru controlul versiunilor folosesc/versioneaza mai multe fisiere si aveau o corespundere directa intreb ele. Acestea erau centralizate.

Exemple de astfel de unelte: Concurrent Versions System (CVS), Subversion (SVN), TFS, Perforce, SVK, VSS.

A treia generatie[modificare | modificare sursă]

A treia generatie de unelete pentru controlul versiunilor folosesc/versioneaza mai multe fisiere si aveau o corespundere directa intreb ele dar sunt descentralizate.

Exemple de astfel de unelte: git, BitKeeper (BK), Bazaar.

Terminologie[modificare | modificare sursă]

repository
„depozitul“ în care sunt păstrate fișierele curente și versiunile anterioare. Deseori acest depozit este o bază de date găzduită pe un server.
working copy (copie de lucru)
copie a fișierelor din repository pe calculatorul de lucru al unui dezvoltator (de unde și numele). Acestea sînt fișierele pe care lucrează un dezvoltator în mod obișnuit.
check-out
operația de creare a unei copii de lucru luate din repository
commit sau check-in
operația de introducere în repository a schimbărilor din copia de lucru
update (actualizare)
introducerea în copia de lucru a schimbărilor făcute de alte persoane (colegi la același proiect) la repository
branch (ramificare)
bifurcarea unui set de fișiere în două căi de dezvoltare distincte
merge (integrare)
unirea a două versiuni diferite ale unui aceluiași fișier într-o singură versiune
tag
o „etichetă“ aplicată fișierelor din repository la un anumit moment important din "viața" programului, de exemplu la lansarea unui produs

Exemple de programe și sisteme pentru Controlul Versiunilor[modificare | modificare sursă]

Vezi și Listă de software pentru controlul versiunilor