Veröffentlichung des Quelltextverwaltungssystems Git 2.38

Die Veröffentlichung des verteilten Systems zur Verwaltung von Quelltexten Git 2.38 wurde vorgestellt. Git ist eines der bekanntesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionsverwaltungssysteme, das flexible Werkzeuge fĂŒr die nichtlineare Entwicklung bietet, die auf Branching und Merging basieren. Um die IntegritĂ€t der Historie und die Robustheit gegenĂŒber rĂŒckwirkenden Änderungen zu gewĂ€hrleisten, wird das implizite Hashing der gesamten vorherigen Historie in jedem Commit verwendet. Auch die digitale Signatur einzelner Tags und Commits durch Entwickler ist möglich.

Im Vergleich zur vorherigen Version wurden in die neue Version 699 Änderungen aufgenommen, die mit der Beteiligung von 92 Entwicklern vorbereitet wurden, von denen 24 zum ersten Mal an der Entwicklung teilgenommen haben. Die wichtigsten Neuerungen:

  • Die Hauptkomponente ist das von Microsoft entwickelte Tool „scalar“, das zur Verwaltung großer Repositories dient. UrsprĂŒnglich wurde das Tool in C# geschrieben, aber es wurde eine ĂŒberarbeitete Version in C aufgenommen. Das neue Tool unterscheidet sich von den git-Befehlen durch die standardmĂ€ĂŸige Integration zusĂ€tzlicher Funktionen und Einstellungen, die die Leistung beim Arbeiten mit sehr großen Repositories beeinflussen. Zum Beispiel verwendet scalar:
    • Teilweises Klonen fĂŒr die Arbeit mit einer unvollstĂ€ndigen Kopie des Repositories.
    • Ein integrierter Mechanismus zur Überwachung von Änderungen im Dateisystem (FSMonitor), der das Durchsuchen des gesamten Arbeitsverzeichnisses ĂŒberflĂŒssig macht.
    • Indizes, die Objekte in verschiedenen Pack-Dateien umfassen (Multi-Pack).
    • Commit-Graph-Dateien mit einem Index des Commit-Graphs, der verwendet wird, um den Zugriff auf Informationen zu Commits zu optimieren.
    • Hintergrundarbeit fĂŒr die Aufrechterhaltung einer optimalen Struktur des Repositories im Hintergrund, ohne die interaktive Sitzung zu blockieren (einmal pro Stunde wird eine vorzeitige Aktualisierung neuer Objekte aus dem Remote-Repository und die Aktualisierung der Datei mit dem Commit-Graph durchgefĂŒhrt, und jede Nacht wird der Packprozess des Repositories gestartet).
    • Der Modus „sparseCheckoutCone“, der die zulĂ€ssigen Muster beim partiellen Klonen einschrĂ€nkt.
  • Im Befehl „git rebase“ wurde die Option „—update-refs“ hinzugefĂŒgt, um abhĂ€ngige Branches zu aktualisieren, die sich mit den verschobenen Branches ĂŒberschneiden, damit keine manuellen Checkout-Operationen an jedem abhĂ€ngigen Branch ausgefĂŒhrt werden mĂŒssen, um zu dem gewĂŒnschten Commit zu wechseln.
  • Die KompatibilitĂ€t des Befehls „git rm“ mit partiellen Indizes wurde sichergestellt.
  • Das Verhalten des Befehls „git mv A B“ wurde verbessert, wenn eine Datei aus dem Arbeitsverzeichnis mit partiellen Indizes in ein externes Verzeichnis im „cone“-Modus verschoben wird, fĂŒr das dieser Modus nicht angewendet wird.
  • Das Format der Bitmap-Dateien wurde optimiert, um mit großen Repositories zu arbeiten – eine optionale Indextabelle mit einer Liste der ausgewĂ€hlten Commits und deren Offsets wurde hinzugefĂŒgt.
  • Im Befehl „git merge-tree“ wurde ein neuer Modus implementiert, bei dem auf Basis von zwei angegebenen Commits ein Merge-Ergebnisbaum berechnet wird, als ob die Historien dieser Commits zusammengefĂŒhrt worden wĂ€ren.
  • Eine Einstellung „safe.barerepository“ wurde hinzugefĂŒgt, um die Möglichkeit zu steuern, bare Repositories (Repositories, die kein Arbeitsverzeichnis enthalten) innerhalb anderer Git-Repositories zu platzieren. Bei der Einstellung auf „explicit“ ist die Arbeit mit bare Repositories erlaubt, die nur im Hauptverzeichnis angelegt sind. FĂŒr die Möglichkeit, bare Repositories in Unterverzeichnissen zu platzieren, sollte der Wert „all“ verwendet werden.
  • Im Befehl „git grep“ wurde die Option „-m“ („—max-count“) hinzugefĂŒgt, die der gleichnamigen Option in GNU grep entspricht und es ermöglicht, die Anzahl der ausgegebenen Übereinstimmungen zu begrenzen.
  • Im Befehl „ls-files“ wurde die Option „—format“ implementiert, um die ausgegebenen Felder anzupassen (z. B. kann die Ausgabe von Objektname, Modus usw. eingeschlossen werden).
  • In „git cat-file“ wurde die Möglichkeit implementiert, die Bindungen der Autoren zu E-Mail-Adressen zu berĂŒcksichtigen, die in der Datei mailmap angegeben sind.

Quelle: opennet.ru

ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster