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
