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
