Veröffentlichung des Versionsverwaltungsprogramms Git 2.46

Nach drei Monaten Entwicklung wurde die Version 2.46 des verteilten Systems zur Verwaltung von Quelltexten Git veröffentlicht. Git ist eines der beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionskontrollsysteme, das flexible Mittel fĂŒr nichtlineare Entwicklungen bietet, die auf Verzweigungen und ZusammenfĂŒhrungen von Branches basieren. Um die IntegritĂ€t der Historie und die WiderstandsfĂ€higkeit gegen "ZurĂŒckdatierung" zu gewĂ€hrleisten, wird das implizite Hashing der gesamten vorhergehenden Historie in jedem Commit verwendet; außerdem ist die ÜberprĂŒfung digitaler Signaturen von Entwicklern fĂŒr bestimmte Tags und Commits möglich. Der Code von Git wird unter der Lizenz GPLv2+ verteilt.

Im Vergleich zur vorherigen Version wurden in diese neue Version 746 Änderungen aufgenommen, die von 96 Entwicklern vorbereitet wurden, von denen 31 erstmals an der Entwicklung beteiligt sind. Die Hauptneuheiten sind:

  • Es wurde experimentelle UnterstĂŒtzung fĂŒr einen neuen Typ von Bitmaps hinzugefĂŒgt – „pseudo-merge reachability bitmap“. Im Gegensatz zur Struktur der „reachability bitmap“ werden hierbei die Daten ĂŒber Objektmengen, die mit Commits in Verbindung stehen, nicht an jeden einzelnen Commit gebunden, sondern an mehrere Commits gleichzeitig. Diese Organisation ermöglicht die Verwendung einer einzigen Bitmap zur Bestimmung von Objekten fĂŒr Commits in verschiedenen Branches. In großen Repositories trĂ€gt dies dazu bei, die Erstellung einer Vielzahl individueller Bitmaps zu vermeiden und beschleunigt erheblich den Zugriff auf Objekte zur Bestimmung, welche Objekte an den Client gesendet werden mĂŒssen, bei der DurchfĂŒhrung von Operationen wie „git fetch“, „git rev-list“ und „git clone“. Um den neuen Typ von Bitmaps zu aktivieren und die Logik fĂŒr deren Auswahl und Verwendung zu definieren, wurde eine Reihe von Einstellungen vorgeschlagen: „bitmapPseudoMerge“: git config bitmapPseudoMerge.all.pattern ‘refs/(heads|tags)/’ git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
  • Eine neue Befehlszeilenschnittstelle fĂŒr den Befehl „git config“ wurde implementiert, die anstelle der verstreuten Optionen zum Anzeigen, Umbenennen und Löschen von Einstellungen und Sektionen wie „—get“, „—get-all“, „—unset“ und „—remove-section“ eine Reihe von separaten Sub-befehlen bietet. Beispielsweise kann der Befehl „git config list“ nun verwendet werden, um alle Einstellungen des Repositories auszugeben, und um den Inhalt eines bestimmten Parameters anzuzeigen, wird der Befehl „git config get “ verwendet. Zur zusĂ€tzlichen Filterung der Ergebnisse kann die Option „—regexp“ verwendet werden, um einen regulĂ€ren Ausdrucksfilter festzulegen.
  • Im Protokoll „credential helper“, das zur Übertragung von Anmeldeinformationen beim Zugriff auf Repositories mit eingeschrĂ€nktem Zugriff verwendet wird, wurde die UnterstĂŒtzung neuer Felder „authtype“ und „credential“ hinzugefĂŒgt. Diese ermöglichen die Erstellung von Handlern fĂŒr HTTP-Authentifizierungssysteme, die ĂŒber die ÜberprĂŒfung von Benutzername und Passwort hinausgehen, beispielsweise beim Einsatz von Bearer Tokens in OAuth 2.0. Zuvor musste man vertrauliche Daten im Klartext im Parameter http.extraHeader angeben, um mit solchen Authentifizierungssystemen zu arbeiten. Zudem bietet das Protokoll die Möglichkeit, den Zustand jedes Anmeldeinformationshandlers zu speichern, um mehrstufige Authentifizierungsmethoden zu unterstĂŒtzen, die in Protokollen wie NTLM und Kerberos verwendet werden.
  • Die Entwicklung des experimentellen Backends „reftable“ wurde fortgesetzt, um eine effiziente Speicherung von Verweisen auf Branches und Tags im Repository zu ermöglichen. Dieses Backend nutzt den Blockspeicher, der im JGit-Projekt verwendet wird und fĂŒr die Speicherung einer sehr großen Anzahl von Verweisen optimiert ist (traditionelle Speicherformate fĂŒr Verweise fĂŒhren in Repositories mit einer hohen Anzahl an Verweisen zu erheblichen Overheads aufgrund der Platzierung einer sehr großen Anzahl von Dateien in einem einzigen Verzeichnis, wenn die Verweise im Verzeichnis $GIT_DIR/refs gespeichert werden, oder zur Notwendigkeit, eine große Datei bei jedem Update neu zu schreiben, wenn die Verweise in der Datei $GIT_DIR/packed_refs gespeichert werden). In der neuen Version wurde der Befehl „git refs migrate —ref-format=reftable“ hinzugefĂŒgt, um bestehende Repositories auf das Backend „reftable“ zu migrieren (frĂŒher wurde das Backend nur bei der Initialisierung des Repositories aktiviert).
  • Dem git-Befehl wurde die Option „—no-advice“ hinzugefĂŒgt, die alle Nachrichten mit Empfehlungen und Hinweisen deaktiviert. Dies kann nĂŒtzlich sein, um zu verhindern, dass das Log mit ĂŒberflĂŒssigen Informationen bei automatisierten Aufrufen von git vollgestopft wird.
  • Der Prozess zur Übertragung einiger Tests aus dem Testset auf die Verwendung von Unittests hat begonnen. Dies wird die Testung der Low-Level-Komponenten vereinfachen und die EffektivitĂ€t des Testprozesses auf der Windows-Plattform erhöhen, auf der erhebliche Overheads beim Start von vielen Prozessen wĂ€hrend der AusfĂŒhrung von Tests, die als Shell-Skripte implementiert sind, entstehen.
  • Im Code zur Analyse der Farbanpassungen wurde die Möglichkeit hinzugefĂŒgt, das „#RGB“-Format neben „#RRGGBB“ zu verwenden.

Quelle: opennet.ru

ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen đŸ”„ ZuverlĂ€ssiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster