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 versiunii este orice practică care urmărește și vă permite să controlați modificările aduse codului 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 versiunilor software pentru documentație și fișiere de configurare , precum și cod 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, acestea încep să fie utilizate 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 versiuni separate ale aceluiași software să fie implementate în locuri diferite și că dezvoltatorii de software lucrează în mod privat la dezvoltarea actualizărilor. Bug-urile și alte probleme software sunt adesea prezente doar în anumite versiuni (datorită faptului că pe măsură ce software-ul evoluează, unele probleme sunt remediate, iar altele sunt detectate). Prin urmare, pentru a detecta și remedia erorile , este vital ca programatorul să poată prelua și rula diferite versiuni ale software-ului pentru a determina în 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ă modifice același fișier în același timp, în absența unei metode de gestionare a accesului, pot suprascrie sau pierde cu ușurință modificările făcute în același timp. 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. Acest lucru poate oferi o anumită protecție împotriva conflictelor dificile de îmbinare atunci când un utilizator face modificări radicale la multe secțiuni ale unui fișier mare (sau 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. 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 efectuate de pe 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 permite, de asemenea, dezvoltatorilor să acceseze funcțiile de control al versiunilor fără a avea nevoie de permisiuni acordate de o autoritate centrală. Altele, precum CVS sau Subversion (SVN), permit mai multor dezvoltatori să editeze același fișier în același timp și oferă instrumente pentru îmbinarea modificărilor ulterioare (î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. Există adesea plugin-uri pentru IDE-uri precum Eclipse și Visual Studio .

Glosar

Repertoriu
depozitul este depozitul în care sunt stocate fișierele, adesea pe serverele de fișiere . De asemenea, se numește uneori depozit (de exemplu, din software-ul Perforce).
Check-in
se efectuează un check-in (sau ci sau, mai rar, instalare , trimitere ) la copierea modificărilor făcute pe fișierele locale din directorul depozitului (software-ul de control al versiunii verifică 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 comitere de schimbare atomică, o listă de schimbări identifică un set de modificări făcute într-o singură validare.
Verifică
Un checkout (sau checkout sau co ) face o copie de lucru din depozit (poate fi văzută ca reversul importului). Checkout este achitarea fișierului, precum și starea corespunzătoare.
Actualizați
o actualizare (sau sincronizare ) copiază modificările făcute pe depozit în directorul dvs. de lucru (poate fi văzut ca operațiunea de validare inversă).
Merge / Integrare
o fuziune sau integrare îmbină modificările concurente î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 locale în depozit.
Export
un export este similar cu o plată, cu excepția faptului că creează un arbore de director gol, fără metadate de control al versiunii (utilizate adesea înainte de publicarea conținutului).
Conflict
un conflict apare atunci când diferiț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. Deoarece software-ul nu este suficient de inteligent pentru a decide care dintre modificări este „corectă”, un utilizator este obligat să rezolve conflictul.
Rezolva
intervenția unui utilizator pentru rezolvarea unui conflict între diferite modificări ale aceluiași document.
Boltire
set de acțiuni care reglementează inserarea (check-in-ul) și recuperarea (check-out-ul), de către un client, a conținutului documentar al unei unități de informație (obiect) controlată de 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 serverul de fișiere.

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