Nach drei Monaten Entwicklungsarbeit wurde die Version 2.44 des verteilten Systems zur Verwaltung von Quelltexten Git veröffentlicht. Git zĂ€hlt zu den beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionierungssystemen und bietet flexible Mittel fĂŒr die nichtlineare Entwicklung, die auf dem Verzweigen und ZusammenfĂŒhren von Branches basieren. Um die IntegritĂ€t der Historie und die Resistenz gegen nachtrĂ€gliche Ănderungen sicherzustellen, wird die gesamte vorherige Historie in jedem Commit implizit gehasht; zudem besteht die Möglichkeit, digitale Signaturen von Entwicklern fĂŒr bestimmte Tags und Commits zu verwenden. Der Git-Code wird unter der GPLv2+-Lizenz vertrieben.
Im Vergleich zur vorherigen Version wurden in die neue Version 503 Ănderungen integriert, die von 85 Entwicklern vorbereitet wurden, von denen 34 erstmals 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 Rekonstruktion der Historie dient. Server ohne Arbeitsverzeichnis (bare-Repository, das kein Arbeitsverzeichnis enthĂ€lt), Verarbeitung mehrerer Zweige gleichzeitig, AusfĂŒhrung der Rebase-Operation fĂŒr Zweige, die nicht gerade ausgecheckt sind, oder einfach zur Beschleunigung von Merge-VorgĂ€ngen.
- UnterstĂŒtzung fĂŒr das Continuous Integration-System GitLab CI hinzugefĂŒgt.
- Die Befehle âgit addâ und âgit stashâ unterstĂŒtzen jetzt Pfadattribute â:(attr:âŠ)â, Ă€hnlich wie beim Befehl âgit showâ. Zum Beispiel kann âgit add ':(attr:~binary)'â verwendet werden, um alle Textdateien (nicht-binĂ€r) zum Index hinzuzufĂŒgen. DarĂŒber hinaus wurde im neuen Release das Attribut âbuiltin_objectmodeâ zur Filterung von Dateipfaden nach Berechtigungen vorgeschlagen. 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 und fĂŒr die ein Multi-Pack-Index mit VerfĂŒgbarkeitsinformationen vorhanden ist, wurde hinzugefĂŒgt. Dies ermöglicht eine Optimierung, bei der statt der tatsĂ€chlichen DatenĂŒbertragung auf bereits in Pack-Dateien vorhandene Daten verwiesen wird. Ab Version 2.44 kann Git jetzt die Wiederverwendung von Objekten ĂŒber mehrere Pack-Dateien hinweg verarbeiten, ohne dass das Repository in eine einzelne Pack-Datei umgepackt werden muss. Um die neue Funktion zu aktivieren, fĂŒhren Sie folgende Befehle aus: git config âglobal pack.allowPackReuse multi git multi-pack-index write âbitmap
Nach der Aktivierung kann die Anzahl der Pack-Dateien, aus denen Objekte wiederverwendet werden, in der Anzeige âpack-reused ⊠(von N)â, die wĂ€hrend des AusfĂŒhrens von âgit pushâ angezeigt wird, verfolgt werden.
- Der Befehl âgit rebase âautosquashâ kann jetzt fĂŒr nicht-interaktive Rebase-Operationen verwendet werden, was es ermöglicht, einen Rebase durchzufĂŒhren und fixup-Ănderungen schnell anzuwenden, ohne die ĂnderungsĂŒbersicht zu ĂŒberprĂŒfen und ohne die Umgebungsvariable GIT_SEQUENCE_EDITOR zu Ă€ndern.
- Der Befehl âgit merge-fileâ hat die Option ââdiff-algorithmâ erhalten, um einen alternativen Algorithmus zur Bewertung von Unterschieden zwischen Dateien auszuwĂ€hlen.
- Im Befehl âgit checkout -B []â ist das Aktualisieren und Abrufen 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 Hinweisanzeigen (hint) ohne die Anleitung zum Deaktivieren dieser (âDisable this message withâŠâ) entfernt, 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 undefinierter Reihenfolge fĂŒhrt (frĂŒher wurde bei Angabe von ââno-sortâ dennoch 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 Referenzen.
- Der Wincred-Credential-Management-Backend unterstĂŒtzt nun die Aktualisierung von OAuth-Token, Ă€hnlich wie es in den Backends credential-cache und credential-libsecret implementiert ist.
- In «git fetch» wurde die UnterstĂŒtzung fĂŒr die Konfigurationsoption «fetch.all» hinzugefĂŒgt, die analog zur Verwendung der Option «âall» in der Befehlszeile verarbeitet wird.
Quelle: opennet.ru
