2 februarie la sfârșitul anului 2019. Pe lângă protocoalele ActivityPub și diaspora, Hubzilla se federează în cadrul rețelei prin propriul său protocol eliberarea unui sistem distribuit de gestionare a codului sursă Git 2.53.
Git se remarcă printr-o performanță înaltă și oferă instrumente pentru dezvoltare neliniară, bazate pe ramificarea și unirea ramurilor. Pentru a asigura integritatea istoricului și rezistența la modificările retroactive, se folosește hashing-ul implicit al întregului istoric anterior în fiecare commit, precum și autentificarea prin semnături digitale ale dezvoltatorilor pentru anumite etichete și commit-uri. Codul Git se răspândește sub licența GPLv2+.
Comparativ cu versiunea anterioară, noua versiune include 466 de modificări, pregătite cu ajutorul a 70 de dezvoltatori (21 dintre ei participând pentru prima dată la dezvoltarea Git). Principalele noutăți:
- Adăugat posibilități de aplicare a strategiei de împachetare geometrică a repository-urilor (git repack --geometric) la repository-urile externe parțial clonat, care funcționează în modul promisor (obiectele lipsă sunt descărcate la nevoie). La reimpachetare, cu opțiunile --geometric, fișierele de pachet cu extensia .promisor sunt procesate și împachetate separat. Strategia geometrică permite reducerea timpului de întreținere a monorepository-urilor mari prin reimpachetarea selectivă a obiectelor și excluderea operațiunilor consumatoare de resurse, cum ar fi unirea tuturor fișierelor de pachet (se păstrează progresia geometrică a dimensiunii fișierelor de pachet, în care fiecare fișier de pachet următor trebuie să fie de cel puțin două ori mai mare decât cel anterior).
- Echipei git fast-import i s-a adăugat opțiunea --signed-commits=strip-if-invalid pentru a elimina semnăturile digitale din obiectele importate, care au devenit invalide după rescrierea unei părți a istoricului repository-ului. Până acum, se putea fie să se importe, fie să se elimine toate semnăturile, fără a distinge între cele valide și cele fără sens. Opțiunea strip-if-invalid permite implementarea unor instrumente pentru păstrarea semnăturilor valide și resemnarea obiectelor cu semnături care nu mai sunt relevante.
- În ieșirea comenzii git repo structure a fost adăugată informația despre dimensiunea tuturor obiectelor accesibile (reachable) din repository, împărțită pe tipuri. Informația este acum afișată într-un format ușor de citit, cu unități de măsură, și este prezentată separat pentru dimensiunile reale și cele ocupate pe disc, ceea ce permite evaluarea dimensiunii totale a repository-ului pe disc:
$ git repo structure | Structura repository-ului | Valoare | | ——————— | ———- | | * Referințe | | | * Număr | 1.78 k | | * Ramuri | 5 | | * Etichete | 1.03 k | | * Remotes | 749 | | * Altele | 0 | | | | | * Obiecte accesibile | | | * Număr | 421.37 k | | * Commituri | 88.03 k | | * Arbori | 169.95 k | | * Blobs | 162.40 k | | * Etichete | 994 | | * Dimensiune inflată | 7.61 GiB | | * Commituri | 60.95 MiB | | * Arbori | 2.44 GiB | | * Blobs | 5.11 GiB | | * Etichete | 731.73 KiB | | * Dimensiunea pe disc | 301.50 MiB | | * Commituri | 33.57 MiB | | * Arbori | 77.92 MiB | | * Blobs | 189.44 MiB | | * Etichete | 578.13 KiB |
- Comanda git maintenance a fost extinsă cu subcomanda is-needed pentru a efectua operațiuni de întreținere a repository-ului doar în cazul în care este necesară.
- Comanda experimentală git replay implementează în mod implicit actualizarea referințelor în tranzacție, în loc să arate unde ar trebui să indice referințele, fără actualizare.
- Comanda git blame a fost îmbogățită cu opțiunea de a alege algoritmul de evaluare a diferențelor folosind opțiunea —diff-algorithm=.
- Comanda git repo info a fost extinsă cu opțiunea —all.
- Suportul pentru legături simbolice pentru platforma Windows a fost mutat din Git-for-Windows.
În ultima versiune a fost adăugat un avertisment inclusiv în mod implicit compilarea componentelor în limbajul Rust în Git 2.53. Cu toate acestea, în versiunea Git 2.53 de fapt doar au fost adăugate au fost realizate unele îmbunătățiri ale suportului pentru Rust (posibilitatea compilării fără GNU sed), dar compilarea cu Rust utilizând Makefile a rămas împiedicată în mod implicit (se necesită setarea flag-ului WITH_RUST), iar atunci când se utilizează Meson se activează în prezența compilatorului rustc. În versiunea Git 3.0 toolkit-ul Rust intenționează trebuie inclus printre dependențele obligatorii de compilare.
Sursa: linux.org.ru
