Veröffentlichung des verteilten Versionskontrollsystems Git 2.27

Verfügbar Veröffentlichung des verteilten Systems zur Verwaltung von Quelltexten Git 2.27.0Git ist eines der beliebtesten, zuverlässigsten und leistungsstärksten Versionskontrollsysteme, das flexible Mittel für die nichtlineare Entwicklung bietet, die auf Verzweigung und Zusammenführung von Branches basieren. Um die Integrität der Historie und die Widerstandsfähigkeit gegen nachträgliche Änderungen zu gewährleisten, wird das implizite Hashing der gesamten vorherigen Historie in jedem Commit verwendet; es ist auch möglich, einzelne Tags und Commits mit digitalen Signaturen der Entwickler zu authentifizieren.

Im Vergleich zur vorherigen Version wurden in die neue Version 537 Änderungen aufgenommen, die in Zusammenarbeit mit 71 Entwicklern durchgeführt wurden, von denen 19 erstmals an der Entwicklung teilnahmen. Die wichtigsten Neuheiten:

  • Die im vorherigen Release standardmäßig aktivierte Funktion wurde zurückgesetzt. zweiten Version des Kommunikationsprotokolls Git, das verwendet wird, wenn sich ein Client mit dem Git-Server verbindet. Das Protokoll wird derzeit als nicht bereit für den Standardgebrauch eingestuft, da einige kritische Punkte entdeckt wurden, die einer separaten Prüfung bedürfen.
  • Es wurde ein Satz von Optionen hinzugefügt, um die SSL-Verbindung bei Zugriff über einen Proxy zu konfigurieren.
  • Die Informationen, die bei der Verwendung der Transformationsfilter „clean“ und „smudge“ ausgegeben werden, wurden erweitert. So wird jetzt das Objekt tree-ish, in dem der transformierte Blob auftritt, angezeigt.
  • Um Verwirrung zu vermeiden, wird beim Befehl „git describe“ jetzt immer der erweiterte Ausgabe-Modus („—long“) verwendet, wenn ein ersetztes Tag, das mit dem Commit verknüpft ist, festgestellt wird (zuvor wurde ein signiertes oder annotiertes Tag, das das Commit beschrieb, selbst dann ausgegeben, wenn es umbenannt oder in der Hierarchie „refs/tags/“ verschoben wurde, und der Befehl „git show tag^0“ funktionierte nicht wie erwartet – „refs/tags/tag“ wurde nicht gefunden oder sogar ein anderer Tag angezeigt).
  • Beim Ausführen von „git pull“ wird jetzt eine Warnung ausgegeben, wenn die Konfigurationsvariable pull.rebase nicht ausdrücklich festgelegt ist und keine Optionen „—[no-]rebase“ oder „—ff-only“ angewendet wurden. Um die Warnung für diejenigen zu unterdrücken, die keinen Rebase-Vorgang durchführen möchten, kann der Wert „false“ für die Variable festgelegt werden.
  • Die Optionen „git pull“, die mit „git fetch“ gemeinsam genutzt werden, wurden überprüft. Früher nicht erwähnte ähnliche Optionen wurden dokumentiert und übergangene Optionen wurden an „git fetch“ übergeben.
  • Dem Befehl „git rebase“ wurde die Option „—no-gpg-sign“ hinzugefügt, um die Einstellung „commit.gpgSign“ zu überschreiben.
  • Im „git format-patch“ wurde die Möglichkeit hinzugefügt, die „From:“ und „Subject:“ Kopfzeilen unverändert anzuzeigen, ohne Zeichen zu konvertieren, die in der ASCII-Codierung nicht vorhanden sind.
  • Im „git log“ wurde die Option „—show-pulls“ hinzugefügt, mit der nicht nur die Commits angezeigt werden, in denen Änderungen vorgenommen wurden, sondern auch der Commit für das Zusammenführen dieser Änderungen aus einem separaten Branch.
  • Die Behandlung der interaktiven Eingabe wurde in allen Komponenten vereinheitlicht und der Aufruf von fflush() wurde nach der Anzeige der Eingabeaufforderung, aber vor der Leseoperation hinzugefügt.
  • In «git rebase» ist es erlaubt, ohne vorherige Ausführung der Operation «checkout» alle lokalen Commits erneut anzuwenden, selbst wenn einige von ihnen zuvor an das Upstream übergeben wurden.
  • Der Wert der Konfigurationsvariable ‘pack.useSparse’ wurde standardmäßig auf ‘true’ gesetzt, um Optimierungen, die zuvor als experimentell betrachtet wurden, einzuschalten.
  • In «git merge» wurde die Option «—autostash» hinzugefügt.
  • Die Benutzeroberfläche für «sparse-checkout» wurde verbessert.
  • In «git update-ref —stdin» wurden mehrere neue Aktionen hinzugefügt,
    die es ermöglichen, Transaktionen zum Aktualisieren von Referenzen direkt zu steuern, zum Beispiel zur Implementierung eines zweistufigen atomaren Updates von Referenzen in mehreren Repositories.
  • Benutzerdefinierte Vorlagen für Markdown-Dokumente wurden hinzugefügt.
  • Die Einschränkung wurde aufgehoben, die alle Pfade in sparse-checkout-Vorlagen ausschloss, die zu einem leeren Arbeitsbaum führten.
  • Der Befehl «git restore —staged —worktree» verwendet jetzt standardmäßig den Inhalt des «HEAD»-Branches, anstatt einen Fehler auszugeben.
  • Die Arbeiten am Wechsel zum Hash-Algorithmus SHA-2 anstelle von SHA-1 wurden fortgesetzt.
  • Der Code für die Interaktion mit GnuPG wurde überarbeitet.

Quelle: opennet.ru

60GB SSD 8Gb DDR4