Release des Versionsverwaltungssystems Git 2.32

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

60GB SSD 8Gb DDR4