Release des Versionsverwaltungssystems Git 2.38

Die neue Version des verteilten Versionskontrollsystems Git 2.38 wurde veröffentlicht. Git gehört zu den beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionskontrollsystemen und bietet flexible Mittel fĂŒr nichtlineare Entwicklung basierend auf Branching und Merging. Zur GewĂ€hrleistung der IntegritĂ€t der Historie und der WiderstandsfĂ€higkeit gegenĂŒber nachtrĂ€glichen Änderungen wird in jedem Commit eine implizite Hashbildung der gesamten vorherigen Historie verwendet. Zudem ermöglicht die digitale Signatur von Entwicklern fĂŒr bestimmte Tags und Commits eine Authentifizierung.

Im Vergleich zur vorherigen Version wurden 699 Änderungen in die neue Version aufgenommen, die von 92 Entwicklern vorbereitet wurden, von denen 24 zum ersten Mal an der Entwicklung teilnahmen. Zu den wichtigsten Neuerungen zĂ€hlen:

  • Im Hauptbestandteil ist das Tool „scalar“ enthalten, das von Microsoft zur Verwaltung großer Repositories entwickelt wurde. Das Tool wurde ursprĂŒnglich in C# geschrieben, aber eine umgearbeitete Version in C wurde in Git integriert. Die neue Anwendung unterscheidet sich von den Git-Befehlen, indem sie standardmĂ€ĂŸig zusĂ€tzliche Funktionen und Einstellungen bietet, die die Leistung beim Arbeiten mit sehr großen Repositories verbessern. Zum Beispiel wird bei der Verwendung von scalar Folgendes angewendet:
    • Teilweises Klonen fĂŒr die Arbeit mit einer unvollstĂ€ndigen Kopie des Repositories.
    • Ein integrierter Mechanismus zur Überwachung von Änderungen im Dateisystem (FSMonitor), der es ermöglicht, auf eine vollstĂ€ndige Durchsuchung des Arbeitsverzeichnisses zu verzichten.
    • Indizes, die Objekte in verschiedenen Pack-Dateien abdecken (Multi-Pack).
    • Commit-Graph-Dateien mit einem Index des Commit-Graphs, der zur Optimierung des Zugriffs auf Informationen ĂŒber Commits verwendet wird.
    • Hintergrundarbeiten zur Aufrechterhaltung der optimalen Struktur des Repositories im Hintergrund, ohne die interaktive Sitzung zu blockieren (jede Stunde wird eine Aufgabe zur proaktiven Đ·Đ°ĐłŃ€ŃƒĐ·ĐșĐ” neuer Objekte aus dem entfernten Repository sowie zur Aktualisierung der Commit-Grafdatei ausgefĂŒhrt, wĂ€hrend jede Nacht ein Verpackungsprozess fĂŒr das Repository startet).
    • Der Modus „sparseCheckoutCone“, der die zulĂ€ssigen Muster beim partiellen Klonen einschrĂ€nkt.
  • Der Befehl „git rebase“ wurde um die Option „—update-refs“ ergĂ€nzt, um abhĂ€ngige Branches, die sich mit den verschobenen Branches ĂŒberschneiden, zu aktualisieren, damit keine manuelle Checkout-Operation fĂŒr jeden abhĂ€ngigen Branch erforderlich ist, um auf den gewĂŒnschten Commit zu wechseln.
  • Die KompatibilitĂ€t des Befehls „git rm“ mit teilweisen Indizes wurde gewĂ€hrleistet.
  • Das Verhalten des Befehls „git mv A B“ wurde verbessert, wenn eine Datei aus dem Arbeitsverzeichnis mit teilweisen Indizes im „cone“-Modus in einen externen Bereich verschoben wird, fĂŒr den dieser Modus nicht gilt.
  • Das Format der Bitmap-Dateien fĂŒr die Arbeit mit großen Repositories wurde optimiert — 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 Baum mit dem Ergebnis des ZusammenfĂŒhrens berechnet wird, als wĂ€ren die Historien dieser Commits zusammengefĂŒhrt worden.
  • Es wurde die Einstellung „safe.barerepository“ hinzugefĂŒgt, um die Möglichkeit der Ablage von Bare-Repositories (Repositories, die keinen Arbeitsbaum enthalten) innerhalb anderer Git-Repositories zu steuern. Bei der Einstellung auf „explicit“ ist die Arbeit mit Bare-Repositories, die nur im obersten Verzeichnis abgelegt sind, erlaubt. Um Bare-Repositories auch in Unterverzeichnissen ablegen zu können, 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 (zum Beispiel kann der Ausgabename des Objekts, Berechtigungen usw. einbezogen werden).
  • In „git cat-file“ wurde bei der Anzeige des Inhalts von Objekten die Möglichkeit implementiert, die Zuordnungen der Autoren zu E-Mail-Adressen zu berĂŒcksichtigen, die in der Datei mailmap festgelegt sind.

Quelle: opennet.ru

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster