Acum câteva zile s-a anunțat Lansarea noii versiuni a proiectului Git 2.50, introducerea a peste 600 de modificări condus de o comunitate activă care de data aceasta a inclus 98 de dezvoltatori, inclusiv 35 de noi contribuitori.
Această nouă versiune de Git 2.50 se remarcă prin integrarea de noi comenzi (git-diff-pairs), noi funcții pentru curățare, filtrare și întreținere, înlocuirea motorului de îmbinare recursivă cu ORT, precum și îmbunătățiri de performanță și remedieri de erori.
Git 2.50 Caracteristici noi cheie
În această nouă versiune de Git 2.50, una dintre cele mai importante caracteristici noi este optimizarea tratamentului așa-numitelor „pachete de crustă”, Adică, pachete de obiecte care sunt inaccesibile sau nu sunt referențiate de ramuri sau etichete. În mod tradițional, Git stoca aceste obiecte într-un singur fișier pachet mare, ceea ce putea cauza probleme de performanță la reîmpachetarea repozitoriilor cu multe dintre aceste elemente.
Cu noua versiune, Git vă permite să împărțiți aceste pachete cruft în mai multe fișiere mai mici., ceea ce reduce utilizarea discului și îmbunătățește performanța de intrare/ieșire pentru operațiunile în bloc. În plus, sși introduceți opțiunea –combine-cruft-below-size, ceea ce permite combinați pachete mici într-unul singur mai flexibil decât opțiunea anterioară –max-cruft-size, fără a impune o limită asupra dimensiunii combinate a fișierelor. Această nouă funcție este utilă în special în proiectele cu obiecte orfane răspândite în mai multe pachete.
O altă îmbunătățire destinată depozitelor la scară largă este suport experimental pentru actualizarea incrementală a Indici MIDX , care Acestea stochează informații despre obiecte în straturi separate utilizarea fișierelor bitmap, ceea ce permite actualizări mai rapide pe măsură ce sunt adăugate noi commit-uri. Această îmbunătățire este esențială pentru depozitele mari care necesită operațiuni rapide de indexare fără a fi nevoie de reconstruirea completă a metadatelor.
Înlocuirea completă a motorului de îmbinare recursivă cu ORT
Git 2.50 introduce o schimbare majoră odată cu eliminarea permanentă a motorului de fuziune recursivă tradițional. În schimb, utilizarea ORT este consolidată, A motor de fuziune mai modern, mai ușor de întreținut și mai eficient. ORT nu numai că oferă o analiză mai precisă a conflictelor, dar vă permite și să verificați dacă o îmbinare este posibilă fără a genera obiecte suplimentare. În plus, comanda merge-tree include acum o opțiune –quiet pentru utilizare ca un verificator silențios de îmbinare fără a modifica repozitoriul.
gitt-diff-pairs: soluția problemelor de scalabilitate
Revizuirea codului este, fără îndoială, unul dintre pilonii dezvoltării colaborative moderne, iar diferențele sau diferențele dintre revizii joacă un rol important în acest proces. Odată cu apariția Git 2.50, a fost introdusă o soluție concepută pentru scalabilitate: noua comandă git-diff-pairs.
În mod tradițional, pentru a obține o comparație între două revizii se folosește o comandă de genul:
git diff HEAD~1 HEAD
Aceasta generează un patch complet care conține toate modificările dintre reviziile listate. Deși eficient în multe cazuri, poate reprezenta o problemă de performanță atunci când se lucrează cu seturi mari de fișiere modificate.
De aceea, git-diff-pairs a fost special conceput pentru a primi date brute direct de la ieșirea comenzii git diff-tree și pentru a genera patch-urile corespunzătoare eficient și precis.
Utilizarea este la fel de simplă ca:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Această comandă preia perechile de blob-uri furnizate și generează rezultatul exact al diferențelor, păstrând informațiile contextuale și permițând împărțirea lucrării în loturi mai mici. Acest lucru deschide calea către procesarea paralelă, îmbunătățește eficiența resurselor și facilitează scalabilitatea în instrumente bazate pe diferențe, cum ar fi GitLab.
Funcții noi pentru curățare, filtrare și întreținere
Git 2.50 include mai multe instrumente suplimentare concepute pentru a îmbunătăți întreținerea repozitoriului:
- Comanda a fost adăugată drop-ul reflog-ului în git, care vă permite să ștergeți complet reflog-ul pentru o anumită ramură, ideal pentru curățarea istoricului de lucru atunci când nu mai este nevoie să mențineți referințele anterioare.
- Opțiunea -filtra Funcția cat-file –batch este acum disponibilă în git, permițându-vă să filtrați rezultatele după tipul de obiect.
În plus, sunt evidențiate și câteva optimizări interne:
- Utilizare îmbunătățită a legăturilor simbolice, cu memorare în cache a prefixelor și reducerea verificărilor redundante.
- Eliminarea dependențelor Perl din documentație și scripturile de testare, înlocuirea lor cu funcții shell sau implementări C, facilitând compilarea lor pe sisteme cu configurații minimaliste.
- Inclusiv un controler diferență de utilizator pentru analiza diferențelor dintre fișierele .ini.
- Compatibilitate îmbunătățită a comenzii git send-email cu serverele SMTP precum Outlook.
În cele din urmă, dacă sunteți interesat să aflați mai multe despre acesta, puteți consulta detaliile în următorul link.