Veröffentlichung des Quelltextmanagementsystems Git 2.44

Nach drei Monaten der Entwicklung wurde die Version 2.44 des verteilten Systems zur Verwaltung von Quelltexten Git veröffentlicht. Git ist eines der beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionsverwaltungssysteme, das flexible Mittel zur nichtlinearen Entwicklung bietet, die auf Verzweigungen und ZusammenfĂŒhrungen basieren. Um die IntegritĂ€t der Historie und die WiderstandsfĂ€higkeit gegen nachtrĂ€gliche Änderungen sicherzustellen, wird eine implizite Hash-Wertung der gesamten vorherigen Geschichte in jedem Commit verwendet, zudem ist es möglich, die digitalen Signaturen der Entwickler fĂŒr einzelne Tags und Commits zu ĂŒberprĂŒfen. Der Git-Code wird unter der GPLv2+-Lizenz verbreitet.

Im Vergleich zur vorherigen Version wurden in das neue Release 503 Änderungen aufgenommen, die mit der Teilnahme von 85 Entwicklern erstellt wurden, von denen 34 zum ersten Mal an der Entwicklung beteiligt waren. Die wichtigsten Neuerungen sind:

  • Ein neuer Befehl „git replay“ wurde hinzugefĂŒgt, der als Alternative zu „git rebase“ verwendet werden kann und zur Wiederherstellung der Historie auf Server einem Bare-Repository (ohne Arbeitsverzeichnis), zur gleichzeitigen Verarbeitung mehrerer Zweige, zur DurchfĂŒhrung von Rebase-Operationen fĂŒr Zweige, die nicht gerade entpackt wurden, oder einfach zur Beschleunigung von Merge-VorgĂ€ngen.
  • Die UnterstĂŒtzung fĂŒr das Continuous Integration-System GitLab CI wurde hinzugefĂŒgt.
  • In die Befehle „git add“ und „git stash“ wurde die UnterstĂŒtzung fĂŒr die Pfadattribute „:(attr:
)“ aufgenommen, die analog zu dem Befehl „git show“ festgelegt werden. Zum Beispiel kann „git add ‘:(attr:~binary)'“ verwendet werden, um alle Textdateien (nicht-binĂ€r) in den Index aufzunehmen. DarĂŒber hinaus wurde im neuen Release das Attribut „builtin_objectmode“ zum Filtern von Dateipfaden nach Zugriffsrechten angeboten. Zum Beispiel kann „git add ‘:(attr:builtin_objectmode=100755)'“ verwendet werden, um alle ausfĂŒhrbaren Dateien hinzuzufĂŒgen.
  • Die UnterstĂŒtzung fĂŒr die Wiederverwendung von Objekten, die ĂŒber mehrere Pack-Dateien verteilt sind, wurde hinzugefĂŒgt, fĂŒr die ein Mehrfach-Pack-Index (multi-pack-index) mit den Daten zur VerfĂŒgbarkeit von Objekten vorhanden ist (eine Optimierung, die es ermöglicht, anstelle der tatsĂ€chlichen DatenĂŒbertragung auf die Nutzung von Daten zu verweisen, die bereits in Pack-Dateien vorhanden sind). Ab Version 2.44 kann Git die Wiederverwendung von Objekten ĂŒber mehrere Pack-Dateien hinweg verarbeiten, ohne dass das Repository in eine einzige Pack-Datei neu verpackt werden muss. Um die neue Funktion zu aktivieren, sind folgende Befehle auszufĂŒhren: git config —global pack.allowPackReuse multi git multi-pack-index write —bitmap

    Danach kann die Anzahl der Pack-Dateien, aus denen Objekte wiederverwendet werden, im Wert „pack-reused 
 (from N)“, der bei der AusfĂŒhrung von „git push“ angezeigt wird, nachverfolgt werden.

  • Der Befehl „git rebase —autosquash“ kann jetzt fĂŒr nicht-interaktive Rebase-Operationen verwendet werden, was es ermöglicht, Rebase durchzufĂŒhren und Fixup-Änderungen schnell anzuwenden, ohne die ÄnderungsĂŒbersicht zu ĂŒberprĂŒfen und ohne die Umgebungsvariable GIT_SEQUENCE_EDITOR zu Ă€ndern.
  • Dem Befehl „git merge-file“ wurde die Option „—diff-algorithm“ hinzugefĂŒgt, um einen alternativen Algorithmus zur Bewertung von Unterschieden zwischen Dateien auszuwĂ€hlen.
  • Im Befehl „git checkout -B []“ wurde das Aktualisieren und Auschecken von Branches, die ein anderes Arbeitsverzeichnis verwenden, untersagt. Um das alte Verhalten wiederherzustellen, wurde die Option „—ignore-other-worktrees“ hinzugefĂŒgt.
  • Es wurde die Möglichkeit hinzugefĂŒgt, der Einstellung „git config advice.pushAlreadyExists“ den Wert „true“ zuzuweisen, der die Anleitung zum Deaktivieren der Hinweise (hint) bei der Ausgabe entfernt („Disable this message with
“), die Platz auf dem Bildschirm beansprucht.
  • Die AusfĂŒhrung des Befehls „git for-each-ref“ mit der Option „—no-sort“ wurde optimiert, die nun zu einer Ausgabe in unbestimmter Reihenfolge fĂŒhrt (frĂŒher wurde bei Angabe von „—no-sort“ trotzdem eine alphabetische Sortierung angewendet). Nach den Optimierungen beschleunigt die Anwendung von „—no-sort“ nun „git for-each-ref“ um etwa 20 % in Repositories mit einer großen Anzahl von Verweisen.
  • Der Backend-Manager fĂŒr Anmeldeinformationen wincred hat die UnterstĂŒtzung fĂŒr die Aktualisierung von OAuth-Token hinzugefĂŒgt, analog dazu, wie dies in den Backends credential-cache und credential-libsecret implementiert ist.
  • In „git fetch“ wurde die UnterstĂŒtzung fĂŒr den Konfigurationsparameter „fetch.all“ hinzugefĂŒgt, der analog zur HinzufĂŒgung der Option „—all“ in der Befehlszeile verarbeitet wird.

Quelle: opennet.ru

60GB SSD 8Gb DDR4