Ce este un „sistem de control al versiunilor”?
sistemele de control al versiunilor sunt o categorie de instrumente software care ajută la înregistrarea modificărilor aduse fișierelor prin urmărirea modificărilor aduse Codului.
De ce sistemul de control al versiunii este atât de Important?după cum știm că un produs software este dezvoltat în colaborare de către un grup de dezvoltatori, acestea ar putea fi localizate în locații diferite și fiecare dintre ele contribuie la un anumit tip de funcționalitate/caracteristici. Deci, în scopul de a contribui la produs, au făcut modificări în codul sursă(fie prin adăugarea sau eliminarea). Un sistem de control al versiunii este un fel de software care ajută echipa de dezvoltatori să comunice și să gestioneze eficient(să urmărească) toate modificările aduse codului sursă împreună cu informațiile precum Cine a făcut și ce modificare a fost făcută. Se creează o ramură separată pentru fiecare contribuitor care a făcut modificările, iar modificările nu sunt îmbinate în codul sursă original, cu excepția cazului în care toate sunt analizate de îndată ce modificările sunt semnalizate verde, acestea au fuzionat cu codul sursă principal. Nu numai că menține codul sursă organizat, dar îmbunătățește și productivitatea, făcând procesul de dezvoltare neted.
beneficiile sistemului de control al versiunilor:
A) îmbunătățește viteza de dezvoltare a proiectului prin asigurarea unei colaborări eficiente,
b) valorifică productivitatea, accelerează livrarea produselor și abilitățile angajaților printr-o mai bună comunicare și asistență,
c) Reduce posibilitățile de erori și conflicte între timp dezvoltarea proiectului prin trasabilitate la fiecare mică schimbare,
d) angajații sau colaboratorii proiectului pot contribui de oriunde, indiferent de diferitele locații geografice prin intermediul acestui VCS,
e) pentru fiecare contribuitor diferit al proiectului copia este menținută și nu a fuzionat cu fișierul principal, cu excepția cazului în care copia de lucru este validată. Un exemplu cel mai popular este git, Helix core, Microsoft TFS,
f) ajută la recuperare în caz de dezastru sau situație contingentă,
g) ne informează despre cine, ce, când, de ce au fost făcute modificări.
utilizarea sistemului de control al versiunii:
- un depozit: poate fi gândit ca o bază de date a modificărilor. Acesta conține toate modificările și versiunile istorice (instantanee) ale proiectului.
- copie de lucru( uneori numit ca checkout): este copia personală a tuturor fișierelor într-un proiect. Puteți edita la această copie, fără a afecta munca altora și puteți în cele din urmă să vă angajați modificările într-un depozit atunci când ați terminat de făcut modificările.
tipuri de sisteme de control al versiunilor:
- sisteme locale de control al versiunilor
- sisteme centralizate de control al versiunilor
- sisteme de Control al versiunilor distribuite
sisteme locale de Control al versiunilor: este una dintre cele mai simple forme și are o bază de date care a păstrat toate modificările fișierelor sub control de revizuire. RCS este unul dintre cele mai comune instrumente VCS. Păstrează seturi de patch – uri (diferențe între fișiere) într-un format special pe disc. Adăugând toate patch-urile, acesta poate re-crea ceea ce arăta orice fișier în orice moment.
sisteme centralizate de control al versiunilor: sistemele centralizate de control al versiunilor conțin un singur depozit și fiecare utilizator primește propria copie de lucru. Trebuie să vă angajați să reflectați modificările din depozit. Este posibil ca alții să vă vadă modificările prin actualizare.
două lucruri sunt necesare pentru a face modificările vizibile pentru alții, care sunt:
- vă angajați
- ei actualizează
beneficiul CVCS (sisteme centralizate de control al versiunilor) face colaborarea între dezvoltatori, împreună cu furnizarea unei perspective într-o anumită măsură asupra a ceea ce fac toți ceilalți în proiect. Permite administratorilor să controleze cu granulație fină cine poate face ce.
are și unele dezavantaje care au dus la dezvoltarea DVS. Cel mai evident este punctul unic de eșec pe care îl reprezintă depozitul centralizat dacă scade în acea perioadă colaborare și salvarea modificărilor versionate nu este posibilă. Ce se întâmplă dacă hard diskul bazei de date centrale devine corupt și copiile de rezervă corespunzătoare nu au fost păstrate? Pierzi absolut totul.
sisteme de control al versiunilor distribuite: sistemele de control al versiunilor distribuite conțin mai multe depozite. Fiecare utilizator are propriul depozit și copie de lucru. Doar comiterea modificărilor dvs. nu va oferi altora acces la modificările dvs. Acest lucru se datorează faptului că commit va reflecta acele modificări din depozitul local și trebuie să le împingeți pentru a le face vizibile în depozitul central. În mod similar, atunci când actualizați, nu primiți modificările altora decât dacă ați tras mai întâi aceste modificări în depozitul dvs.
pentru a face modificările vizibile pentru alții, sunt necesare 4 lucruri:
- vă angajați
- împingeți
- trag
- actualizează
cele mai populare sisteme de control al versiunilor distribuite sunt Git, Mercurial. Ele ne ajută să depășim problema punctului unic de eșec.
scopul controlului versiunii:
- Mai multe persoane pot lucra simultan la un singur proiect. Toată lumea lucrează și editează propria copie a fișierelor și depinde de ei atunci când doresc să împărtășească modificările făcute de ei cu restul echipei.
- de asemenea, permite unei persoane să utilizeze mai multe computere pentru a lucra la un proiect, deci este valoros chiar dacă lucrați singur.
- se integrează munca care se face simultan de către diferiți membri ai echipei. În unele cazuri rare, când editările conflictuale sunt făcute de două persoane la aceeași linie a unui fișier, atunci asistența umană este solicitată de sistemul de control al versiunii pentru a decide ce ar trebui făcut.
- controlul versiunii oferă acces la versiunile istorice ale unui proiect. Aceasta este asigurarea împotriva accidentelor de calculator sau a pierderii de date. Dacă se face vreo greșeală, puteți reveni cu ușurință la o versiune anterioară. De asemenea, este posibil să anulați modificări specifice, fără a pierde munca depusă între timp. Se poate ști cu ușurință când, de ce și de cine a fost editată orice parte a unui fișier.