Git 2.53

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 distinge prin performanța sa ridicată și oferă instrumente pentru dezvoltarea non-lineară, bazate pe ramificarea și fuziunea ramurilor. Pentru a asigura integritatea istoriei și rezistența la modificările "retroactive", se utilizează hash-urile implicite ale întregii istorii anterioare în fiecare commit, precum și certificarea cu semnături digitale ale dezvoltatorilor pentru anumite etichete și commituri. 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 participarea a 70 de dezvoltatori (21 dintre ei participând pentru prima dată la dezvoltarea Git). Principalele noutăți:

  • Adăugat posibilitatea aplicării strategiei de ambalare a repository-urilor geometric (git repack —geometric) la repository-urile externe parțial clonate, care funcționează în modul promisor (obiectele lipsă sunt descărcate la nevoie). La reambalare, cu opțiunile —geometric, fișierele de ambalare cu extensia .promisor sunt procesate și ambalate separat. Strategia geometric permite reducerea timpului de întreținere pentru repozitorii mari, prin reambalarea selectivă a obiectelor și excluderea operațiunilor consumatoare de resurse, cum ar fi fuziunea tuturor fișierelor de ambalare (se păstrează progresia geometrică a dimensiunii fișierelor de ambalare, în care fiecare fișier de ambalare următor trebuie să fie de cel puțin două ori mai mare decât precedentul).
  • În echipa git fast-import a fost 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. Anterior, se putea fie să se importe, fie să se elimine toate semnăturile, fără a face distincția între cele valide și cele care și-au pierdut sensul. Opțiunea strip-if-invalid permite implementarea instrumentelor pentru păstrarea semnăturilor valide și resemnarea obiectelor cu semnături care au devenit irelevante.
  • În ieșirea comenzii git repo structure a fost adăugată informația despre dimensiunea tuturor obiectelor accesibile (reachable) în repository, detaliată pe tipurile acestora. Informația este acum prezentată într-un format ușor de citit, cu unități de măsură, și este afișată 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 | Valoare | | ——————— | ———- | | * Referințe | | | * Număr | 1.78 k | | * Ramuri | 5 | | * Etichete | 1.03 k | | * Remote-uri | 749 | | * Alte | 0 | | | | | * Obiecte accesibile | | | * Număr | 421.37 k | | * Commit-uri | 88.03 k | | * Arbori | 169.95 k | | * Blobs | 162.40 k | | * Etichete | 994 | | * Dimensiune extinsă | 7.61 GiB | | * Commit-uri | 60.95 MiB | | * Arbori | 2.44 GiB | | * Blobs | 5.11 GiB | | * Etichete | 731.73 KiB | | * Dimensiune pe disk | 301.50 MiB | | * Commit-uri | 33.57 MiB | | * Arbori | 77.92 MiB | | * Blobs | 189.44 MiB | | * Etichete | 578.13 KiB |

  • Comanda git maintenance a fost adăugată subcomanda is-needed pentru a efectua operațiuni de întreținere a repository-ului doar atunci când este necesar.
  • În echipa experimentală git replay, actualizarea referințelor în tranzacție este implementată implicit, în loc să arate unde ar trebui să indice referințele, fără actualizare.
  • În comanda git blame a fost adăugată opțiunea de selectare a algoritmului de evaluare a diferențelor prin opțiunea —diff-algorithm=.
  • În comanda git repo info a fost adăugată opțiunea —all.
  • Suportul pentru linkuri simbolice a fost transferat din Git-for-Windows pe platforma Windows.

În versiunea anterioară a fost adăugată un avertisment includerea implicită a compilării componentelor în limbajul Rust în Git 2.53. Cu toate acestea, în versiunea efectivă Git 2.53, doar au fost adăugate câteva îmbunătățiri ale suportului pentru Rust (posibilitatea de a compila fără GNU sed), dar compilarea cu Rust folosind Makefile a fost lăsată implicit dezactivată (necesită activarea flag-ului WITH_RUST), iar la utilizarea Meson se activează în prezența compilatorului rustc. În versiunea Git 3.0, instrumentul Rust intenționează va fi inclus printre dependențele de construire obligatorii.

Sursa: linux.org.ru

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