Vor wenigen Tagen wurde die Veröffentlichung der neuen Version Git 2.3 angekündigt , einem der beliebtesten, zuverlässigsten und leistungsstärksten Versionskontrollsysteme, das flexible, nichtlineare Entwicklungswerkzeuge auf Basis von Branching und Merging bietet.
Im Vergleich zur Vorgängerversion wurden in der neuen Version 679 Änderungen vorgenommen. An der Erstellung der neuen Version waren 85 Entwickler beteiligt , von denen 23 zum ersten Mal an der Entwicklung mitwirkten.
Git 2.31 Highlights
Die neue Version Git 2.31 enthält den Befehl „git maintenance“ , der die regelmäßige Wartung von Systemen ermöglicht, die Cron nicht unterstützen . Mit diesem Befehl lässt sich beispielsweise der Packvorgang des Repositorys so planen, dass er regelmäßig startet. Dadurch entfällt das Warten auf die Sperrung des Repositorys, wenn das Packen nach der Ausführung mehrerer Befehle automatisch erfolgt.
Eine weitere wichtige Änderung ist die Unterstützung für die Verwaltung eines umgekehrten Indexes (revindex) für Paketdateien auf der Festplatte. Git speichert alle Daten als Objekte in separaten Dateien. Um die Arbeit mit dem Repository effizienter zu gestalten, werden diese Objekte in Paketdateien organisiert, in denen die Informationen als Folge von Objekten dargestellt werden.
Für jedes Paketarchiv wird eine Indexdatei (.idx) erstellt, die es ermöglicht, anhand der Objektkennung schnell den Offset innerhalb des Paketarchivs zu ermitteln, an dem das Objekt gespeichert ist. Der in Git 2.31 eingeführte umgekehrte Index (.rev) optimiert die Ermittlung der Objektkennung anhand der Informationen über den Speicherort des Objekts innerhalb eines Paketarchivs.
Bisher erfolgte diese Konvertierung während des Parsens einer Paketdatei und wurde nur im Speicher abgelegt. Dies verhinderte die Wiederverwendung der Indizes und erforderte deren Neugenerierung bei jeder Verarbeitung. Die Indexerstellung reduziert sich nun auf das Erstellen eines Arrays von Objektpositionspaaren und deren Sortierung nach Position, was bei großen Paketdateien sehr zeitaufwendig sein kann.
Des Weiteren lässt sich feststellen, dass Leistungsoptimierungen auf Basis des Commit-Graph-Dateiformats hinzugefügt wurden , welches den Zugriff auf Informationen über Commits optimiert, sowie neue Daten zur Anzahl der generierten Commits, die zur Beschleunigung zusätzlicher Operationen mit Commits genutzt werden können.
Zusätzlich wurde die Möglichkeit hinzugefügt, den Standard-Branchnamen in neuen Repositories zu überschreiben (Einstellung `init.defaultBranch`). Beim Zugriff auf externe Repositories versucht Git, den Branch zu überprüfen, auf den `HEAD` zeigt. Verwendet der externe Server standardmäßig den Branch „main“, versucht der `git clone`-Vorgang, „main“ lokal zu finden.
Weitere bemerkenswerte Änderungen umfassen:
- Die Option "–disk-use" zum Befehl "git rev-list" hinzugefügt um eine Zusammenfassung der Größe der Objekte anzuzeigen.
- Die Unterstützung für die veraltete Bibliothek für reguläre Ausdrücke PCRE1 wurde entfernt.
- Bereitstellung der Möglichkeit, die Verwendung von Verknüpfungen mit Gewalt zu verbieten, unabhängig vom Hashing-Algorithmus. Das Verbot wird aktiviert, indem dem Parameter core.abbrev der Wert "no" zugewiesen wird.
- Die Option "–path-format" wurde dem Befehl "git rev-parse" hinzugefügt, um die Ausgabe von relativen oder absoluten Pfaden explizit zu definieren.
- Mit den Autocomplete-Skripten von Bash können Sie auf einfache Weise Abschlussregeln für benutzerdefinierte "git" -Unterbefehle hinzufügen.
- Option "–stdin" zum Befehl "git bundle" hinzugefügt, um Links aus dem Standardeingabestream zu lesen.
- Die Optionen "Nur links" und "Nur rechts" wurden dem Befehl "git range-diff" hinzugefügt, um nur eine Seite des verglichenen Bereichs anzuzeigen.
- Option "–skip-to = = hinzugefügt »Zum Befehl« git difftool », um eine unterbrochene Sitzung von einem beliebigen Pfad aus fortzusetzen.
- Der Verhaltenskodex (Code of Conduct), der die Grundprinzipien für die Lösung von Konflikten zwischen Entwicklern definiert, wurde auf Version 2.0 aktualisiert (zuvor wurde Version 1.4 verwendet).
Wenn Sie mehr darüber erfahren möchten , können Sie dem folgenden Link folgen.