Nach drei Monaten Entwicklung wurde die Veröffentlichung der verteilten Versionsverwaltung Git 2.32 bekannt gegeben. Git ist eines der beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionskontrollsysteme, das flexible Mittel fĂŒr die nicht-lineare Entwicklung bietet, basierend auf Branching und Merging. Um die IntegritĂ€t der Historie und die WiderstandsfĂ€higkeit gegen ânachtrĂ€glicheâ Ănderungen zu gewĂ€hrleisten, wird eine implizite Hash-Berechnung der gesamten vorherigen Historie in jedem Commit genutzt. Zudem ist die Authentifizierung durch digitale Signaturen fĂŒr einzelne Tags und Commits möglich.
Im Vergleich zur vorherigen Version wurden in die neue Version 617 Ănderungen aufgenommen, die von 100 Entwicklern vorbereitet wurden, von denen 35 zum ersten Mal an der Entwicklung beteiligt sind. Die Hauptneuheiten sind:
- Dem Befehl âgit commitâ wurde die Option ââtrailer [=]â hinzugefĂŒgt, die es ermöglicht, strukturierte Informationen (Trailer) im SchlĂŒssel/Wert-Format, die anschlieĂend mit dem Befehl âinterpret-trailersâ verarbeitet werden können, einfacher an das Commit anzuhĂ€ngen.
- Anstelle des Mechanismus GIT_CONFIG_NOSYSTEM, der verwendet wird, um das Lesen der systemweiten Konfigurationsdatei zu verhindern, wird der Mechanismus GIT_CONFIG_SYSTEM empfohlen, mit dem explizit angegeben werden kann, aus welcher Datei allgemeine Systemeinstellungen geladen werden sollen, sowie der Parameter GIT_CONFIG_GLOBAL, um die benutzerspezifischen Einstellungen in $HOME/.gitconfig zu ĂŒberschreiben. Eine leere Zuweisung der Variablen GIT_CONFIG_SYSTEM Ă€ndert das Verhalten auf das Ăquivalent von GIT_CONFIG_NOSYSTEM.
- Bei Verwendung der zweiten Version des Kommunikationsprotokolls von Git wird bei der AusfĂŒhrung von âgit pushâ die Erkennung des gemeinsamen VorgĂ€ngers auf der EmpfĂ€ngerseite implementiert, was es ermöglicht, die Effizienz von âgit pushâ auf das Niveau von âgit fetchâ zu heben und das Laden unnötiger Objekte zu vermeiden.
- Ein einfacher IPC-Interface wurde hinzugefĂŒgt, der es ermöglicht, Dienste wie fsmonitor zu erstellen.
- Die Verarbeitung von Dateien â.gitattributesâ, â.gitignoreâ und â.mailmapâ wurde eingestellt, wenn diese symbolische Links sind.
- FĂŒr den HTTP-Transport wurde die UnterstĂŒtzung fĂŒr das Caching des Passworts hinzugefĂŒgt, das erfolgreich zur Entsperrung des Zertifikats verwendet wurde.
- Das Team âgit stash showâ hat die Möglichkeit zur Anzeige untracked Teile des Speichers temporĂ€r entfernten Dateien realisiert.
- Ein fortgeschritteneres Repository-Repackaging-Strategie durch das Team âgit repackâ wurde vorgeschlagen, um den Ressourcenverbrauch beim Repackaging zu reduzieren.
- Das Team âgit commitâ hat eine erweiterte Version der Option ââfixupâ (Commit fĂŒr ârebase âautosquashâ erstellen) - ââfixup=(reword|amend):â - implementiert, die die Wahl bietet: entweder nur die Lognachricht oder die Nachricht und den Inhalt zu Ă€ndern.
- In der âgit send-emailâ-Befehlsoption wurde die Einstellung core.hooksPath berĂŒcksichtigt.
- In âgit format-patch -vâ ist die Verwendung von ZĂ€hlern, die keine Ganzzahlen sind, erlaubt.
- Im âgit cloneâ wurde die Option ââreject-shallowâ hinzugefĂŒgt, die das Klonen aus Repositories im Shallow-Modus (ohne vollstĂ€ndige Ănderungsverlauf) verbietet.
- In der Anwendung âgitwebâ wurde ein E-Mail-Ausblendmodus hinzugefĂŒgt, der E-Mail-Ă€hnliche Zeilen bei der Ausgabe ersetzt.
- Die Logik zur Verarbeitung des Befehls âgit apply â3wayâ wurde geĂ€ndert, sodass zunĂ€chst versucht wird, den Drei-Wege-Merge-Algorithmus anzuwenden und nur im Falle eines Fehlers oder eines Konflikts auf die normale Anwendung des Patches zurĂŒckgegriffen wird (frĂŒher war es umgekehrt).
- Im Befehl âgit applyâ ist die gleichzeitige Angabe der Optionen ââ3wayâ und ââcachedâ erlaubt.
- Im Userdiff wurden Vorlagen fĂŒr die Sprache âSchemeâ hinzugefĂŒgt.
- Im Befehl âgit logâ wurde die Option ââdiff-merges=â und die Einstellung log.diffMerges zum AuswĂ€hlen des Standardmodus hinzugefĂŒgt.
- In den Befehlen âgit addâ und âgit rmâ wurde zusĂ€tzlicher Schutz vor DatenĂ€nderungen in Pfaden auĂerhalb des Bereichs der partiellen Klonoperation (sparse checkout) hinzugefĂŒgt.
- Im Befehl âgit rev-listâ wurde die Option ââfilter=object:type=â hinzugefĂŒgt, um bestimmte Objektarten aus der vom Befehl pack-objects generierten Packdatei auszuschlieĂen.
- In âgit pack-objectsâ ist die Angabe negativer Werte in Optionen, die numerische Werte akzeptieren, wie ââwindowâ und ââdepthâ, nicht erlaubt.
Quelle: opennet.ru
