Release der Quelltextverwaltung Git 2.53

Die Veröffentlichung des verteilten Systems zur Verwaltung von Quelltexten Git 2.53 wurde vorgestellt. Git zeichnet sich durch hohe LeistungsfĂ€higkeit aus und bietet Mittel fĂŒr nichtlineare Entwicklung, die auf Verzweigung und ZusammenfĂŒhrung von Branches basieren. Um die IntegritĂ€t der Historie zu gewĂ€hrleisten und eine Resistenz gegen nachtrĂ€gliche Änderungen sicherzustellen, wird eine implizite Hashing aller vorherigen Historie in jedem Commit verwendet, sowie die BestĂ€tigung durch digitale Signaturen der Entwickler fĂŒr bestimmte Tags und Commits. Der Git-Code wird unter der Lizenz GPLv2+ verbreitet.

Im Vergleich zur vorherigen Version wurden 466 Änderungen aufgenommen, die von 70 Entwicklern vorbereitet wurden (21 von ihnen haben erstmals an der Entwicklung von Git teilgenommen). Die wichtigsten Neuerungen sind:

  • Es wurde die Möglichkeit hinzugefĂŒgt, die Repository-Packstrategie „geometric“ („git repack —geometric“) auf teilweise geklonte externe Repositories anzuwenden, die im „promisor“-Modus arbeiten (fehlende Objekte werden bei Bedarf nachgeladen). Bei der Neuverpackung mit den Optionen „—geometric“ werden Packdateien mit der Erweiterung „.promisor“ separat bearbeitet und verpackt. Die Strategie „geometric“ ermöglicht eine VerkĂŒrzung der Wartungszeit großer Monorepositories durch selektives Neuverpacken von Objekten und den Ausschluss ĂŒberflĂŒssiger ressourcenintensiver Operationen, wie das ZusammenfĂŒhren aller Packdateien (es wird eine geometrische Progression der GrĂ¶ĂŸe der Packdateien beibehalten, bei der jede nachfolgende Packdatei mindestens doppelt so groß wie die vorhergehende sein muss).
  • Dem Befehl „git fast-import“ wurde die Option „—signed-commits=strip-if-invalid“ hinzugefĂŒgt, um digitale Signaturen aus importierten Objekten zu entfernen, die nach einer Neubeschreibung eines Teils der Historie des Repositories ungĂŒltig geworden sind. Zuvor konnte man entweder alles importieren oder alle Signaturen entfernen, ohne zwischen gĂŒltigen und ungĂŒltigen zu unterscheiden. Die Option „strip-if-invalid“ ermöglicht die Implementierung von Werkzeugen zur Beibehaltung gĂŒltiger Signaturen und zur Neuunterschrift von Objekten mit ungĂŒltigen Signaturen.
  • Im Ausgabebereich des Befehls „git repo structure“ wurde die Information zur GrĂ¶ĂŸe aller erreichbaren Objekte (reachable) im Repository mit einer AufschlĂŒsselung nach ihren Typen hinzugefĂŒgt. Die Informationen werden jetzt in lesbarem Format mit Maßeinheiten ausgegeben und separat fĂŒr die tatsĂ€chliche sowie die auf der Festplatte belegte GrĂ¶ĂŸe angezeigt, was es ermöglicht, die GesamtgrĂ¶ĂŸe des Repositories auf der Festplatte zu bewerten. $ git repo structure | Repository-Struktur | Wert | | ——————— | ———- | | * Referenzen | | | * Anzahl | 1.78 k | | * Branches | 5 | | * Tags | 1.03 k | | * Remotes | 749 | | * Andere | 0 | | | | | * Erreichbare Objekte | | | * Anzahl | 421.37 k | | * Commits | 88.03 k | | * Trees | 169.95 k | | * Blobs | 162.40 k | | * Tags | 994 | | * AufgeblĂ€hte GrĂ¶ĂŸe | 7.61 GiB | | * Commits | 60.95 MiB | | * Trees | 2.44 GiB | | * Blobs | 5.11 GiB | | * Tags | 731.73 KiB | | * FestplattengrĂ¶ĂŸe | 301.50 MiB | | * Commits | 33.57 MiB | | * Trees | 77.92 MiB | | * Blobs | 189.44 MiB | | * Tags | 578.13 KiB |
  • Dem Befehl „git maintenance“ wurde der Unterbefehl „is-needed“ hinzugefĂŒgt, um Wartungsoperationen am Repository nur bei Bedarf durchzufĂŒhren.
  • Im experimentellen Befehl „git replay“ wird standardmĂ€ĂŸig das Aktualisieren von Referenzen innerhalb der Transaktion implementiert, anstatt anzuzeigen, auf was die Referenzen zeigen sollten, ohne eine Aktualisierung vorzunehmen.
  • Im Befehl „git blame“ wurde die Möglichkeit hinzugefĂŒgt, den Algorithmus zur Bewertung von Unterschieden mit der Option „—diff-algorithm=<algo>“ auszuwĂ€hlen.
  • Dem Befehl „git repo info“ wurde die Option „—all“ hinzugefĂŒgt.
  • Die UnterstĂŒtzung fĂŒr symbolische Links wurde von Git-for-Windows auf die Windows-Plattform ĂŒbertragen.

In die vorherige Veröffentlichung wurde eine Warnung ĂŒber die standardmĂ€ĂŸige Aktivierung der Komponentenkompilierung in Rust in Git 2.53 aufgenommen. In der Version Git 2.53 wurden jedoch tatsĂ€chlich nur einzelne Verbesserungen der Rust-UnterstĂŒtzung (Bau ohne GNU sed) hinzugefĂŒgt, wĂ€hrend die Kompilierung mit Rust bei der Verwendung von Makefile standardmĂ€ĂŸig deaktiviert bleibt (erfordert das Setzen des Flags WITH_RUST), wĂ€hrend sie bei Verwendung von Meson automatisch aktiviert wird, sofern der Compiler rustc vorhanden ist. In der Version Git 3.0 wird beabsichtigt, Rust-Tools zu den erforderlichen Build-AbhĂ€ngigkeiten hinzuzufĂŒgen.

Quelle: opennet.ru

60GB SSD 8Gb DDR4