Controlul versiunii

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Exemplu de grafic istoric al unui proiect sub control de versiune. Trunchiul este verde, ramurile sunt galbene. Acest grafic nu este un copac și acest lucru se datorează prezenței îmbinării (săgeți roșii).

Controlul versiunilor ( controlul versiunilor), în informatică , este gestionarea versiunilor mai multor seturi de informații: instrumentele software pentru controlul versiunilor sunt considerate deseori necesare pentru majoritatea proiectelor de dezvoltare software sau document gestionat de o echipă de dezvoltare colaborativă sau editare.

Prin urmare, este utilizat în principal în dezvoltarea proiectelor de inginerie sau computerizate pentru a gestiona evoluția continuă a documentelor digitale, cum ar fi desene tehnice , cod sursă software , documentație textuală și alte informații importante pe care poate lucra o echipă de oameni (istoria Wikipedia este o exemplu deplin de sistem de control al versiunilor).

Descriere

Caracteristici

Controlul versiunii inginerești dezvoltat din procese formale bazate pe desene pe hârtie. Modificările aduse acestor documente sunt identificate prin incrementarea unui număr sau cod asociat acestora, numit „număr versiune”, „etichetă versiune” sau pur și simplu „versiune” și sunt etichetate cu numele persoanei care a făcut modificarea. O formă simplă de control al versiunii, de exemplu, atribuie numărul 1 primei versiuni a unui proiect. Când se face prima modificare, numărul de identificare a versiunii se schimbă la 2 și așa mai departe.

Implicit în acest control a fost posibilitatea de a reveni la o stare anterioară a proiectului, în cazurile în care s-a ajuns la un punct mort de inginerie. La fel, în ingineria software , controlul versiunilor este orice practică care urmărește și vă permite să controlați modificările la codul sursă produs de fiecare dezvoltator, partajând în același timp cea mai actualizată sau modificată versiune de către fiecare, arătând astfel starea într-un timp scurt.progresul muncii de dezvoltare. Dezvoltatorii de software folosesc uneori controlul versiunii software pentru documentare și configurarea fișierelor, precum și codul sursă. În teorie, controlul versiunii poate fi aplicat oricărui tip de înregistrare a informațiilor. Cu toate acestea, în practică, tehnicile și instrumentele mai sofisticate pentru controlul versiunilor au fost rareori folosite în afara mediilor de dezvoltare software (deși ele pot fi de fapt utile în multe alte domenii). Cu toate acestea, începeți să le utilizați pentru a urmări modificările aduse fișierelor CAD , înlocuind gestionarea versiunii „manuale”.

Pe măsură ce software-ul este dezvoltat și implementat , este din ce în ce mai probabil ca diferite versiuni ale aceluiași software să fie implementate în locuri diferite, iar dezvoltatorii de software să lucreze în mod privat pentru dezvoltarea de upgrade-uri. Bug-urile și alte probleme legate de software sunt adesea prezente doar în anumite versiuni (datorită faptului că pe măsură ce software-ul evoluează, unele probleme sunt corectate, iar altele sunt detectate). Prin urmare, pentru a localiza și a remedia erorile, este extrem de important ca programatorul să poată prelua și trimite diferite versiuni de software pentru a determina ce versiuni a apărut problema. De asemenea, poate fi necesar să se dezvolte două versiuni ale software-ului în paralel (când, de exemplu, într-o versiune au fost remediate erori, dar nu are caracteristici noi, în timp ce în cealaltă versiune sunt dezvoltate caracteristici noi).

La cel mai simplu nivel, dezvoltatorii pot păstra o copie pentru fiecare versiune de software diferită și le pot identifica în mod corespunzător. Această abordare a fost utilizată în multe proiecte software mari. Deși această metodă poate funcționa, este ineficientă (deoarece se vor păstra multe copii aproape identice ale software-ului), necesită multă disciplină din partea dezvoltatorilor și adesea duce la erori. În consecință, sistemele au fost dezvoltate pentru a automatiza (parțial sau integral) procesul de control al versiunii.

În majoritatea proiectelor de dezvoltare software, mai mulți dezvoltatori lucrează în paralel pe același software. Dacă doi dezvoltatori încearcă să editeze același fișier în același timp, în absența unei metode de gestionare a accesului, pot suprascrie cu ușurință sau pot pierde modificate simultan. Majoritatea sistemelor de control al versiunilor pot rezolva această problemă în două moduri diferite. Această problemă afectează doar sistemele de control al versiunilor centralizate, deoarece sistemele distribuite permit în mod inerent mai multe modificări simultane.

Argumentele pro și contra blocării fișierelor sunt dezbătute. O astfel de operație poate oferi o anumită protecție împotriva conflictelor dificile de îmbinare atunci când un utilizator face modificări radicale la mai multe secțiuni ale unui fișier mare (sau la un grup de fișiere). Dar dacă fișierele sunt lăsate blocate prea mult timp, alți dezvoltatori pot fi tentați să ocolească software-ul de control al versiunilor și să modifice în continuare fișierele la nivel local, ceea ce poate duce la probleme mai grave.

Unele sisteme încearcă să gestioneze profilurile celor care au permisiunea de a face modificări; de exemplu, solicitarea ca modificările unui fișier să fie aprobate de un examinator desemnat înainte de a fi adăugate. Majoritatea sistemelor de control al versiunilor utilizează compresia delta , care păstrează doar diferențele dintre versiunile succesive ale fișierelor dvs. Aceasta permite stocarea eficientă a mai multor versiuni ale unui fișier, atâta timp cât, așa cum se întâmplă de obicei, modificările dintre o versiune și următoarea afectează doar o mică parte a textului.

Programe și sisteme utilizate

Unele sisteme vor preveni problemele datorate accesului simultan prin simpla blocare (blocare) a fișierelor, astfel încât un singur dezvoltator să aibă dreptul de a avea acces la scriere la copia fișierelor conținute în fabrica de depozitare .

În mod tradițional, sistemele de control al versiunilor au folosit un model centralizat, în care toate funcțiile de control al versiunii sunt realizate de un server partajat. În urmă cu câțiva ani, anumite sisteme precum TeamWare, BitKeeper și GNU arch au început să utilizeze un model distribuit, unde fiecare dezvoltator lucrează direct cu depozitul lor local, iar modificările sunt partajate între depozite într-un pas separat. Acest mod de funcționare vă permite să lucrați fără o conexiune la rețea și, de asemenea, permite dezvoltatorilor să acceseze funcțiile de control al versiunilor fără a avea nevoie de permisiuni acordate de o autoritate centrală. Altele, cum ar fi CVS sau Subversion (SVN), care permit mai multor dezvoltatori să editeze același fișier în același timp și oferă instrumentele pentru a combina modificările ulterior (îmbinare). În ultimul tip, poate exista o operație de blocare opțională.

Unele dintre instrumentele mai avansate de control al versiunilor oferă multe alte caracteristici, permițând o integrare mai profundă cu alte instrumente și procese de inginerie software. Pluginuri disponibile adesea pentru IDE-uri precum Eclipse și Visual Studio .

Glosar

Repertoriu
Depozitul este arhiva în care sunt stocate fișierele, adesea pe serverele de fișiere . Uneori se mai numește depozit (de exemplu de Perforce Software).
Check-in
un check-in (sau acolo sau, mai rar, instalare, trimitere) se face la copierea modificărilor făcute pe depozitul local de fișiere (software-ul de control al versiunii controlează ce fișiere au fost modificate de la ultima sincronizare). Check-in-ul este inserarea fișierului, precum și starea corespunzătoare.
Editați | ×
o modificare (modificare) reprezintă o modificare specifică unui document supus controlului versiunii. Granularitatea modificărilor considerate modificări variază între sistemele de control al versiunii.
Lista de schimb
Pe multe sisteme de control al versiunilor cu mai multe modificări atomice de validare , o listă de schimbări identifică un set de modificări efectuate într-o singură validare.
Verifică
Un checkout (sau checkout sau co) face o copie de lucru din depozit (poate fi văzută ca operațiunea inversă de import). Checkout este achitarea fișierului, precum și starea corespunzătoare.
Actualizați
o actualizare (sau sincronizare) copiază modificările din depozitul din directorul dvs. de lucru (poate fi văzut ca operațiunea inversă a commit-ului).
Merge / Integrare
o fuziune sau integrare se alătură modificărilor concurenților într-o revizuire unificată.
Revizuire
o versiune sau o versiune este o versiune dintr-un lanț de modificări.
Import
Termenul import este folosit pentru a descrie copierea întregului arbore de directoare din depozitul local.
Export
exporturile sunt similare cu un check-out, cu excepția faptului că creează un arbore de director gol, fără metadate de control al versiunii (adesea utilizate anterior pentru a publica conținut).
Conflict
un conflict apare atunci când mai mulți subiecți modifică același document în același timp, nevăzând schimbările pe care le face celălalt și care s-ar putea suprapune. Nu este un software suficient de inteligent pentru a decide care dintre modificări este „corectă”, necesită ca un utilizator să rezolve conflictul.
Rezolva
intervenția unui utilizator pentru rezolvarea unui conflict între diferite modificări ale aceluiași document.
Boltire
complex de acțiuni care reglementează inserarea (check-in) și colectarea (check-out), de către un client, a conținutului documentului unei unități de informații (obiect) controlate de la serverul de aplicații [1] . Boltirea logică diferă de boltirea fizică, care este deplasarea octeților care alcătuiesc fișierul în raport cu obiectul. Mutarea are loc în seiful (zona de stocare) controlat de serverul de fișiere.

Notă

  1. ^ Serverul de aplicații gestionează logica sistemului și interacțiunile cu fișierul server.

Elemente conexe

Alte proiecte

Controlul autorității LCCN (EN) sh2014000307 · GND (DE) 4202033-5
Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT