Git 2.37 wurde bereits veröffentlicht und dies sind die Neuigkeiten

Der Start von die neue Version von Git 2.37, Welches ist einer der Die gängigsten Versionskontrollsysteme, zuverlässige und leistungsstarke Software, die flexible nichtlineare Entwicklungswerkzeuge basierend auf Forks und Mergers of Forks bereitstellt.

Um die Integrität des Verlaufs und den Widerstand gegen Änderungen sicherzustellen, wird bei jedem Commit der implizite „Rückwärts“-Hash des gesamten vorherigen Verlaufs verwendet. Es ist auch möglich, die digitalen Signaturen einzelner Tag- und Commit-Entwickler zu überprüfen.

Git 2.37 Highlights

Im Vergleich zur Vorgängerversion, 395 Änderungen wurden in die neue Version übernommen, erstellt unter Beteiligung von 75 Entwicklern, von denen 20 zum ersten Mal an der Entwicklung beteiligt waren.

In dieser neuen Version wird dies hervorgehoben der Teilindizes-Mechanismus (sparse index), der nur einen Teil des Repositoriums abdeckt, se ist für den breiten Einsatz vorbereitet. Teilindizes können die Leistung verbessern und Platz in Repositories sparen, die partielle Klonvorgänge (sparse checkout) durchführen oder auf einer unvollständigen Kopie des Repositorys arbeiten.

Die neue Version vervollständigt die Arbeit von Integration von Teilindizes in Befehle „git show“, „git sparse-checkout“ und „git stash“. Der auffälligste Leistungsgewinn durch die Verwendung von Teilindizes ist der Befehl „git stash“, der in manchen Situationen bis zu 80 % schneller ist.

Eine weitere Veränderung, die auffällt, ist die folgende ein neuer „cruft packs“-Mechanismus wurde implementiert um nicht erreichbare Objekte zu packen, die nicht im Repository referenziert sind (nicht durch Branches oder Tags referenziert). Der Garbage Collector löscht nicht erreichbare Objekte, aber sie verbleiben für eine bestimmte Zeit im Repository, bevor sie gelöscht werden, um Racebedingungen zu vermeiden. Um den Zeitraum von nicht erreichbaren Objekten zu verfolgen, ist eine Bindung erforderlich, sie werden mit der Änderungszeit ähnlicher Objekte gekennzeichnet, was es nicht erlaubt, sie in einer Bündeldatei zu speichern, in der alle Objekte eine gemeinsame Änderungszeit haben.

Speichern Sie jedes zuvor verwendete Objekt in einer separaten Datei, verursachte die Datei Probleme beim Vorhandensein einer großen Anzahl neuer nicht erreichbarer Objekte, noch nicht. Der vorgeschlagene "cruft packs"-Mechanismus ermöglicht es, alle nicht erreichbaren Objekte in einer Bündeldatei zu speichern, und Daten über die Änderungszeit jedes Objekts werden in einer separaten Tabelle widergespiegelt, die in einer Datei mit der Erweiterung ".mtimes" gespeichert ist.

Für Windows und macOS gibt es einen eingebauten Mechanismus um Änderungen am Dateisystem zu verfolgen, die entfällt die Notwendigkeit, das gesamte Arbeitsverzeichnis aufzulisten beim Ausführen von Operationen wie "git status". Früher konnten Sie zum Verfolgen von Änderungen über Hooks externe Dienstprogramme zur Verfolgung von Dateisystemänderungen wie Watchman anschließen, aber dazu mussten zusätzliche Programme und Konfigurationen installiert werden. Diese Funktionalität ist nun eingebaut und kann mit „git config core.fsmonitor true“ aktiviert werden.

Der Befehl "git sparse-checkout" hat die Unterstützung für eine Alternative zum "--cone"-Modus eingestellt Template-Definition für partielles Klonen, die es ermöglicht, beim Definieren des Teils des Repositorys, der Gegenstand des Klonvorgangs ist, einzelne Dateien unter Verwendung der „.gitignore“-Syntax aufzulisten, die keine Verwendung zum Optimieren von partiellen Indizes zulässt.

Von den anderen Änderungen das fällt auf:

  • Verbesserte Flexibilität bei der Konfiguration des fsync()-Aufrufs, um Änderungen auf die Festplatte zu schreiben.
  • Unterstützung für die „Batch“-Synchronisierungsstrategie zum „core.fsyncMethod“-Parameter hinzugefügt, was die Arbeit beim Schreiben einer großen Anzahl separater Dateien beschleunigt, indem Änderungen im Rewrite-Cache gesammelt werden, die durch einen einzigen fsync()-Aufruf geleert werden.
  • Traversal-Befehle wie „git log“ und „git rev-list“ haben jetzt die Option „–since-as-filter=X“, um Informationen zu Commits zu filtern, die älter als „X“ sind.
  • Im „git remote“-Befehl liefert die Angabe des „-v“-Flags Informationen über partielle Klone des Repositorys.
  • Einstellung „transfer.credentialsInUrl“ hinzugefügt, die die Werte „warn“, „die“ und „allow“ annehmen kann. Wenn der Parameter „remote. .url" Anmeldeinformationen im Klartext angibt, schlägt ein Versuch, "get"- oder "push"-Vorgänge durchzuführen, fehl, wenn die Einstellung "transfer.credentialsInUrl" auf "die" gesetzt ist, oder eine Warnung, wenn sie auf "warn" gesetzt ist.
  • Standardmäßig wird die neue Implementierung des interaktiven Modus des "git add -i"-Befehls verwendet, der von Perl auf C umgeschrieben wurde.

Schließlich wenn Sie mehr darüber wissen möchtenkönnen Sie die Details überprüfen im folgenden Link.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.