Git 2.38 Version der Quellcodeverwaltung

Die Veröffentlichung des verteilten Versionsverwaltungssystems Git 2.38 wurde angekündigt. 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 699 Änderungen, die unter Beteiligung von 92 Entwicklern erstellt wurden, von denen 24 erstmals an der Entwicklung beteiligt waren. Wichtigste Neuerungen:

  • Die Hauptstruktur umfasst das Dienstprogramm „Skalar“, das von Microsoft für die Verwaltung großer Repositorys entwickelt wurde. Das Dienstprogramm wurde ursprünglich in C# geschrieben, Git enthält jedoch eine modifizierte Version in C. Das neue Dienstprogramm unterscheidet sich vom Git-Befehl dadurch, dass es standardmäßig zusätzliche Funktionen und Einstellungen aktiviert, die sich auf die Leistung bei der Arbeit mit sehr großen Repositorys auswirken. Bei Verwendung von Skalar gilt beispielsweise:
    • Teilweises Klonen, um mit einer unvollständigen Kopie des Repositorys zu arbeiten.
    • Eingebauter Mechanismus zur Verfolgung von Änderungen im Dateisystem (FSMonitor), der es Ihnen ermöglicht, auf das Durchsuchen des gesamten Arbeitsverzeichnisses zu verzichten.
    • Indizes für Objekte in verschiedenen Packdateien (Multipack).
    • Commit-Graph-Dateien mit einem Commit-Graph-Index, der zur Optimierung des Zugriffs auf Commit-Informationen verwendet wird.
    • Regelmäßige Hintergrundarbeit, um die optimale Struktur des Repositorys im Hintergrund aufrechtzuerhalten, ohne die interaktive Sitzung zu blockieren (die Arbeit erfolgt einmal pro Stunde, um proaktiv neue Objekte aus dem Remote-Repository herunterzuladen und die Datei mit dem Commit-Diagramm und dem Packvorgang zu aktualisieren). das Repository wird jede Nacht gestartet).
    • „sparseCheckoutCone“-Modus, der die zulässigen Muster beim teilweisen Klonen einschränkt.
  • Dem Befehl „git rebase“ wurde die Option „--update-refs“ hinzugefügt, um abhängige Zweige zu aktualisieren, die sich mit den verschobenen Zweigen überschneiden, anstatt jeden abhängigen Zweig manuell auschecken zu müssen, um zum erforderlichen Commit zu wechseln.
  • Der Befehl „git rm“ wurde mit Teilindizes kompatibel gemacht.
  • Das Verhalten des Befehls „git mv AB“ beim Verschieben einer Datei aus einem Arbeitsbereich mit Teilindizes im „Kegel“-Modus in einen externen Bereich, der diesen Modus nicht hat, wurde verbessert.
  • Das Bitmap-Dateiformat wurde für die Arbeit mit großen Repositorys optimiert – eine optionale Indextabelle mit einer Liste ausgewählter Commits und ihrer Offsets wurde hinzugefügt.
  • Der Befehl „git merge-tree“ implementiert einen neuen Modus, in dem basierend auf zwei angegebenen Commits ein Baum mit dem Ergebnis der Zusammenführung berechnet wird, als ob die Historien dieser Commits zusammengeführt würden.
  • Die Einstellung „safe.barerepository“ wurde hinzugefügt, um die Möglichkeit zu steuern, Bare-Repositorys (Repositorys, die keinen Arbeitsbaum enthalten) in anderen Git-Repositorys zu hosten. Bei der Einstellung „explizit“ ist es möglich, mit bloßen Repositorys zu arbeiten, die sich nur im obersten Verzeichnis befinden. Um leere Repositorys in Unterverzeichnissen platzieren zu können, verwenden Sie den Wert „all“.
  • Der Befehl „git grep“ hat die Option „-m“ („—max-count“) hinzugefügt, die der gleichnamigen Option in GNU grep ähnelt und es Ihnen ermöglicht, die Anzahl der angezeigten Übereinstimmungen zu begrenzen.
  • Der Befehl „ls-files“ implementiert die Option „--format“, um die Ausgabefelder zu konfigurieren (Sie können beispielsweise die Ausgabe des Objektnamens, der Modi usw. aktivieren).
  • In „git cat-file“ ist es bei der Anzeige des Inhalts von Objekten möglich, die in der Mailmap-Datei angegebenen Autor-E-Mail-Bindungen zu berücksichtigen.

Source: opennet.ru

Kommentar hinzufügen