Freigabe des Quellcode-Management-Systems Git 2.53

Die Veröffentlichung des verteilten Versionskontrollsystems Git 2.53 ist erfolgt. Git zeichnet sich durch hohe Leistung aus und bietet Werkzeuge für nichtlineare Entwicklungen, die auf Branching und Merging basieren. Um die Integrität der Historie und die Widerstandsfähigkeit gegenüber nachträglichen Änderungen zu gewährleisten, erfolgt eine implizite Hash-Berechnung der gesamten vorherigen Historie in jedem Commit, ebenso wie die Verifizierung durch digitale Signaturen der Entwickler für einzelne Tags und Commits. Der Git-Code wird unter der GPLv2+ Lizenz veröffentlicht.

Im Vergleich zur vorherigen Version wurden 466 Änderungen in die Neuauflage aufgenommen, die von 70 Entwicklern beigetragen wurden (21 von ihnen haben erstmals an der Entwicklung von Git mitgewirkt). Wichtige Neuerungen:

  • Die Möglichkeit, die "geometric" Repository-Verpackungsstrategie ("git repack --geometric") auf teilweise geklonte externe Repositories, die im "promisor"-Modus arbeiten (fehlende Objekte werden bei Bedarf nachgeladen), anzuwenden, wurde hinzugefügt. Bei der Neuverpackung mit der Option "--geometric" werden Pack-Dateien mit der Erweiterung ".promisor" separat verarbeitet und verpackt. Die "geometric"-Strategie ermöglicht eine Reduzierung der Wartungszeiten großer Monorepositories, indem sie eine selektive Neuverpackung von Objekten durchführt und ressourcenintensive Operationen wie das Zusammenführen aller Pack-Dateien vermeidet (die geometrische Progression der Größe der Pack-Dateien bleibt erhalten, wobei jede nachfolgende Pack-Datei mindestens doppelt so groß sein muss wie die vorherige).
  • Das Team von „git fast-import“ hat die Option „—signed-commits=strip-if-invalid“ hinzugefügt, um digitale Signaturen aus importierten Objekten zu entfernen, die nach einer Neuschreibung eines Teils der Repository-Historie 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 es, Werkzeuge zu implementieren, die gültige Signaturen erhalten und Objekte mit ungültigen Signaturen neu signieren.
  • In der Ausgabe des Befehls „git repo structure“ wurde die Information über die Größe aller erreichbaren Objekte im Repository nach ihren Typen ergänzt. Die Informationen werden nun leserlich mit Maßeinheiten angezeigt und getrennt für die tatsächliche und die auf der Festplatte belegte Größe ausgegeben, was eine Einschätzung der Gesamtgröße des Repositories auf der Festplatte ermöglicht. $ git repo structure | Repositorystruktur | Wert | | ——————— | ———- | | * Referenzen | | | * Anzahl | 1,78 k | | * Branches | 5 | | * Tags | 1,03 k | | * Remotes | 749 | | * Sonstige | 0 | | | | | * Erreichbare Objekte | | | * Anzahl | 421,37 k | | * Commits | 88,03 k | | * Bäume | 169,95 k | | * Blobs | 162,40 k | | * Tags | 994 | | * Entpackte Größe | 7,61 GiB | | * Commits | 60,95 MiB | | * Bäume | 2,44 GiB | | * Blobs | 5,11 GiB | | * Tags | 731,73 KiB | | * Festplattengröße | 301,50 MiB | | * Commits | 33,57 MiB | | * Bäume | 77,92 MiB | | * Blobs | 189,44 MiB | | * Tags | 578,13 KiB |
  • Der Befehl „git maintenance“ wurde um den Unterbefehl „is-needed“ ergänzt, um Wartungsoperationen am Repository nur dann durchzuführen, wenn dies notwendig ist.
  • In der experimentellen Teamfunktion „git replay“ wird standardmäßig das Aktualisieren von Referenzen in Transaktionen durchgeführt, anstatt zu zeigen, wohin die Referenzen ohne Aktualisierung zeigen sollten.
  • Der Befehl „git blame“ ermöglicht nun die Auswahl des Algorithmus zur Bewertung von Unterschieden über die Option „--diff-algorithm=“.
  • Der Befehl „git repo info“ erhielt die Option „--all“.
  • Die Unterstützung für symbolische Links wurde aus Git für Windows auf die Windows-Plattform übertragen.

In der vorherigen Ausgabe wurde eine Warnung zur standardmäßigen Aktivierung der Komponentenerstellung in Rust in Git 2.53 hinzugefügt. Tatsächlich wurden in Git 2.53 jedoch nur einige Verbesserungen der Rust-Unterstützung (die Möglichkeit der Erstellung ohne GNU sed) hinzugefügt, während die Erstellung mit Rust unter Verwendung von Makefile standardmäßig deaktiviert bleibt (erfordert das Setzen des Flags WITH_RUST), und bei Verwendung von Meson wird sie automatisch aktiviert, wenn ein rustc-Compiler vorhanden ist. In Git 3.0 soll das Rust-Toolkit zu den obligatorischen Build-Abhängigkeiten gehören.

Quelle: opennet.ru

Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы 🔥 Купить надежный хостинг для сайтов с защитой от DDoS, VPS VDS серверы | ProHoster