Lansarea sistemului de control al versiunilor Git 2.45

După două luni de dezvoltare, a fost lansată versiunea distribuită a sistemului de gestionare a versiunilor Git 2.45. Git este unul dintre cele mai populare, fiabile și eficiente sisteme de gestionare a versiunilor, oferind unelte flexibile pentru dezvoltarea non-liniară, bazate pe ramificare și unire a ramurilor. Pentru a asigura integritatea istoriei și rezistența la modificările retroactive, se utilizează hashing-ul implicit al întreagă istorii în fiecare commit, fiind posibile și certificarea cu semnături digitale ale dezvoltatorilor pentru anumite etichete și commit-uri. Codul Git este distribuit sub licența GPLv2+.

Comparativ cu versiunea anterioară, noua versiune include 540 de modificări, pregătite cu participarea a 96 de dezvoltatori, dintre care 35 au participat pentru prima dată la dezvoltare. Principalele noutăți:

  • A fost adăugată suportul preliminar pentru backend-ul „reftable” pentru stocarea eficientă în repository a referințelor la ramuri și etichete. Noul backend utilizează un sistem de stocare pe bloc, utilizat de proiectul JGit și optimizat pentru a stoca un număr foarte mare de referințe (formatele tradiționale de stocare a referințelor creează cheltuieli considerabile în repository-urile cu un număr mare de referințe din cauza plasării unui număr foarte mare de fișiere într-un singur director în cazul stocării referințelor în directorul $GIT_DIR/refs sau necesității de a rescrie un fișier mare la fiecare actualizare în cazul stocării referințelor într-un fișier $GIT_DIR/packed_refs). Noul backend se activează prin specificarea opțiunii „—ref-format=reftable” la inițializarea repository-ului („git init —ref-format=reftable /path/to/repo”) și permite rapidizarea căutării, citirii și scrierii în repository-urile cu un număr mare de referințe.
  • Au fost furnizate unelte pentru a asigura portabilitatea între identificatorii obiectelor bazate pe hash-uri SHA-1 și SHA-256. Pentru a permite lucrul cu hash-uri SHA-1 și SHA-256 într-un singur repository în timpul migrației treptate la hash-uri SHA-256, a fost propus un nou format de obiecte „compatibility”, care permite referirea la obiecte nu doar prin hash-ul principal, dat la inițializarea repository-ului, ci și printr-un hash de rezervă. De exemplu, la inițializarea repository-ului, se poate alege formatul SHA-256, iar ca rezervă se poate defini hash-ul SHA-1: git init —object-format=sha256 /path/to/repo cd /path/to/repo git config extensions.compatObjectFormat sha1
  • Comanda „git rev-list” a fost îmbunătățită cu capacitatea de a afișa identificatorii obiectelor care lipsesc din depozitul local, chiar dacă acestea nu sunt accesibile în ramuri sau etichete, ceea ce poate fi folosit pentru diagnosticarea deteriorării depozitului: git rev-list —missing=print —all | grep ‘^?’ ?70678e7afeacdcba1242793c3d3d28916a2fd152
  • A fost adăugată o nouă comandă „git reflog list” pentru a arăta reflog-urile cunoscute și link-urile corespunzătoare pe etichete și ramuri.
  • S-a oferit posibilitatea de a defini prefixe alternative pentru ieșirea „git diff”, care sunt afișate înainte de calea fișierului și care indică starea înainte și după o anumită versiune a fișierului (prin urmare, sunt folosite prefixele „a/” și „b/” în mod implicit). Pentru a stabili propriile prefixe, au fost adăugate noi parametrii diff.srcPrefix și diff.dstPrefix în configurație.
  • A fost adăugat parametrul core.commentString pentru a defini o linie de separare care va fi utilizată în locul caracterului „#” pentru a ignora comentariile în mesajul de commit. Setarea anterior disponibilă core.commentChar a fost adaptată pentru a susține caracterele multibyte ca separator de comentarii (anterior erau acceptate doar caractere ASCII).
  • Comanda „git config” a fost îmbogățită cu opțiunea „—comment”, care permite salvarea comentariilor în fișierul .gitconfig pentru a explica natura anumitor setări. git config —comment ‘to show the merge base’ merge.conflictStyle diff3 tail -n 2 .git/config [merge] conflictStyle = diff3 # to show the merge base
  • Comanda „git cherry-pick” a fost extinsă cu opțiunea „—empty” pentru a elimina automat commit-urile redundante, similar cu opțiunea „—empty” din git-rebase și git-am.
  • În comanda „git checkout -p” a fost permisă utilizarea simbolului „@” ca sinonim pentru numele „HEAD”.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster