O ramură în sistemele de control al versiunilor este o direcție de dezvoltare independentă de altele. O ramură este o copie a unei părți dintr- un depozit (de exemplu, un director) la care se pot face modificări fără a afecta alte ramuri. Documentele din ramuri diferite au același istoric înainte de punctul de ramificare și istoric diferit după acesta.
Sistemele de control al versiunilor oferă instrumente pentru manipularea ramurilor, în primul rând creând o ramură și îmbinând modificările într-o altă ramură.
Există o serie de tehnici de ramificare care sunt utilizate pe scară largă în principal în dezvoltarea de software .
Istoricul revizuirilor fiecărui document din depozit este o structură arborescentă . Ramura tulpină ( ing. trunchi ) este direcția principală de dezvoltare. Cea mai mare parte a ramificării și îmbinării se întâmplă cu el. Ramura stem este creată o dată când este creat un nou depozit și există pe toată durata de viață a proiectului. Toate celelalte ramuri sunt create pentru scopuri specifice și diferă în scopul lor.
Înainte de lansarea următoarei versiuni a software-ului, este inacceptabil să faceți modificări potențial destabilizatoare ale codului sursă. Prin urmare, înainte de lansare, de obicei este creată o ramură de lansare ( English release branch sau English tag ), modificări în care sunt strict reglementate. Practic, intră în ea remedieri ale erorilor grave găsite în timpul pregătirii versiunii. Toate celelalte modificări sunt făcute la ramura tulpină. Astfel, stabilitatea codului pe ramura de lansare nu este ruptă, iar eliberarea este eliberată din codul acestei ramuri. Pe viitor, prin fuziune, puteți transfera remedierile făcute pe ramura de lansare în ramura trunchi. De regulă, ramura de lansare nu este ștearsă după lansarea versiunii. Poate fi necesar pentru a reproduce starea proiectului la momentul lansării.
O ramură funcțională este creată pentru a efectua o serie de modificări destabilizatoare fără a afecta ramura tulpină. De exemplu, trebuie să adăugați o nouă funcționalitate la codul dvs., dar modificările sunt atât de complexe încât nu pot fi făcute într-un singur commit. Sau este necesară mai mult de o persoană. În acest caz, se creează o ramură în care se fac schimbări destabilizatoare. În acest caz, codul de pe ramură poate rămâne într-o stare instabilă mult timp. Când modificările sunt făcute și codul este adus într-o stare stabilă, modificările sunt îmbinate în ramura trunchiului. Astfel, pe ramura stem, modificările făcute pe ramura caracteristică arată ca un singur commit (commit-ul care a fost fuzionat) și nu există stări intermediare instabile pe ramura stem. Sunt doar pe ramura funcțională, unde pot fi vizualizate dacă este necesar. După îmbinare, ciclul de viață al unei ramuri de caracteristică s-a încheiat, poate fi șters.
Sisteme de control al versiunilor ( categorie ) | |
---|---|
Doar local | |
Client server | |
Distribuit | |