Veröffentlichung des verteilten Versionsverwaltungssystems Git 2.27

Verfügbar Veröffentlichung eines verteilten Versionsverwaltungssystems Git 2.27.0. Git ist eines der beliebtesten, zuverlässigsten und leistungsstärksten Versionskontrollsysteme und bietet flexible nichtlineare Entwicklungstools basierend auf Verzweigung und Zusammenführung. Um die Integrität des Verlaufs und die Widerstandsfähigkeit gegen rückwirkende Änderungen sicherzustellen, wird in jedem Commit ein implizites Hashing des gesamten vorherigen Verlaufs verwendet; es ist auch möglich, einzelne Tags und Commits mit digitalen Signaturen der Entwickler zu zertifizieren.

Im Vergleich zur Vorgängerversion enthielt die neue Version 537 Änderungen, die unter Beteiligung von 71 Entwicklern erstellt wurden, von denen 19 erstmals an der Entwicklung beteiligt waren. Basic Innovationen:

  • Die in der vorherigen Version implementierte Standardaktivierung wurde zurückgesetzt zweite Version Git-Kommunikationsprotokoll, das verwendet wird, wenn ein Client eine Remoteverbindung zu einem Git-Server herstellt. Das Protokoll gilt standardmäßig noch nicht als einsatzbereit, da heikle Probleme identifiziert wurden, die einer gesonderten Betrachtung bedürfen.
  • Eine Reihe von Optionen zum Einrichten einer SSL-Verbindung beim Zugriff über einen Proxy hinzugefügt.
  • Die angezeigten Informationen bei Verwendung der Konvertierungsfilter „sauber“ und „verschmieren“ wurden erweitert. Beispielsweise wird nun das Objekt angezeigt Baum-ish, in dem der zu konvertierende Blob erscheint.
  • Um Verwirrung zu vermeiden, verwendet der Befehl „git discover“ jetzt immer den erweiterten Ausgabemodus („--long“), wenn ein mit einem Commit verknüpftes ersetztes Tag identifiziert wird (zuvor wurde ein signiertes oder mit Anmerkungen versehenes Tag, das einen Commit beschreibt, ausgegeben, selbst wenn dies der Fall war). umbenannt oder in der Hierarchie „refs/tags/“ verschoben und der Befehl „git show tag^0“ funktionierte nicht wie erwartet – „refs/tags/tag“ wurde nicht gefunden oder es wurde sogar ein anderes Tag zurückgegeben).
  • Beim Ausführen von „git pull“ wird nun eine Warnung ausgegeben, es sei denn, die Konfigurationsvariable pull.rebase ist explizit gesetzt und die Optionen „--[no-]rebase“ oder „--ff-only“ werden nicht verwendet. Um die Warnung für diejenigen zu unterdrücken, die keinen Rebase-Vorgang durchführen möchten, kann die Variable auf „false“ gesetzt werden.
  • Die „Git Pull“-Optionen, die bei „Git Fetch“ üblich sind, wurden überprüft. Bisher nicht erwähnte ähnliche Optionen werden dokumentiert und fehlende Optionen werden an git fetch übergeben.
  • Option „--no-gpg-sign“ zum Befehl „git rebase“ hinzugefügt, um die Einstellung „commit.gpgSign“ zu überschreiben.
  • Mit „git format-patch“ wurde die Möglichkeit hinzugefügt, die Header „From:“ und „Subject:“ unverändert anzuzeigen, ohne Nicht-ASCII-Zeichen zu konvertieren.
  • Die Option „-show-pulls“ wurde zu „git log“ hinzugefügt, sodass Sie nicht nur die Commits anzeigen können, in denen Änderungen vorgenommen wurden, sondern auch den Commit zum Zusammenführen dieser Änderungen aus einem separaten Zweig.
  • Vereinheitlichte interaktive Eingabeverarbeitung über alle Komponenten hinweg und ein Aufruf von fflush() hinzugefügt, nachdem die Eingabeaufforderung angezeigt wird, aber vor dem Lesevorgang.
  • „git rebase“ ermöglicht es Ihnen, alle lokalen Commits erneut anzuwenden, ohne zuerst einen „Checkout“-Vorgang durchzuführen, selbst wenn einige davon zuvor im Upstream übertragen wurden.
  • Der Wert der Konfigurationsvariablen „pack.useSparse“ wurde in „true“ geändert, um zuvor als experimentell angepriesene Optimierungen standardmäßig zu ermöglichen.
  • Option „--autostash“ zu „git merge“ hinzugefügt.
  • Verbesserte „Sparse-Checkout“-Schnittstelle.
  • Mehrere neue Aktionen wurden zu „git update-ref --stdin“ hinzugefügt.
    Dies ermöglicht die direkte Steuerung von Linkaktualisierungstransaktionen, um beispielsweise zweistufige atomare Linkaktualisierungen über mehrere Repositorys hinweg zu implementieren.

  • Benutzerdiff-Vorlagen für Markdown-Dokumente hinzugefügt.
  • Die Einschränkung, alle Pfade in Sparse-Checkout-Vorlagen auszuschließen, die zu einem leeren Arbeitsbaum führen, wurde entfernt.
  • Die Operation „git restart --staged --worktree“ verwendet jetzt standardmäßig die Inhalte aus dem „HEAD“-Zweig, anstatt einen Fehler auszulösen.
  • Die Arbeit an der Umstellung auf den Hash-Algorithmus SHA-2 anstelle von SHA-1 wurde fortgesetzt.
  • Der Code für die Interaktion mit GnuPG wurde überarbeitet.

Source: opennet.ru

Kommentar hinzufügen