Controlul versiunilor
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
modificareCalitatea informațiilor sau a exprimării din acest articol sau secțiune trebuie îmbunătățită. Consultați manualul de stil și îndrumarul, apoi dați o mână de ajutor. |
Istoria uneltelor de Control al versiunilor poate fi împarțită în trei generații:
Prima generație
modificarePrima generație de unelte pentru controlul versiunilor foloseau/versionau câte un singur fișier și nu aveau o corespundere între diferite fișiere din repository. Acestea nu aveau suport pentru rețea.
Exemple de astfel de unelte: Source Code Control System (SCCS), Revision Control System (RCS).
A doua generație
modificareA doua generație de unelte pentru controlul versiunilor folosesc/versionează mai multe fișiere si aveau o corespundere directă între ele. Acestea erau centralizate.
Exemple de astfel de unelte: Concurrent Versions System (CVS), Subversion (SVN), TFS, Perforce, SVK, VSS.
A treia generație
modificareA treia generație de unelte pentru controlul versiunilor folosesc/versionează mai multe fișiere si aveau o corespundere directă între ele dar sunt descentralizate.
Exemple de astfel de unelte: git, BitKeeper (BK), Bazaar.
Terminologie
modificare- 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- Bazaar
- BitKeeper
- CVS
- Darcs
- Git
- Mercurial
- Perforce
- StarTeam
- Subversion
- Visual SourceSafe
- Visual Studio Team System