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
