Veröffentlichung des Versionsverwaltungssystems Git 2.46

Nach drei Monaten Entwicklung wurde die Veröffentlichung des verteilten Versionsverwaltungssystems Git 2.46 veröffentlicht. Git ist eines der beliebtesten, zuverlĂ€ssigsten und leistungsstĂ€rksten Versionsverwaltungssysteme, das flexible Mittel fĂŒr nicht-lineare Entwicklungen bietet, die auf Verzweigungen und ZusammenfĂŒhrungen basieren. Zur Sicherstellung der IntegritĂ€t der Geschichte und der WiderstandsfĂ€higkeit gegenĂŒber nachtrĂ€glichen Änderungen wird eine implizite Hashierung der gesamten vorherigen Historie in jedem Commit verwendet, und es ist auch möglich, die digitalen Signaturen einzelner Tags und Commits der Entwickler zu verifizieren. Der Git-Code wird unter der Lizenz GPLv2+ verbreitet.

Im Vergleich zur vorherigen Version wurden in die neue Version 746 Änderungen aufgenommen, die mit der Beteiligung von 96 Entwicklern vorbereitet wurden, von denen 31 erstmals an der Entwicklung teilnehmen. Die wichtigsten Neuerungen sind:

  • Es wurde experimentelle UnterstĂŒtzung fĂŒr eine neue Art von Bitmaps hinzugefĂŒgt – die „pseudo-merge reachability bitmap“, in der, im Gegensatz zur Struktur der „reachability bitmap“, die Informationen ĂŒber Objekt-Sets, die mit Commits verbunden sind, nicht an jedem einzelnen Commit gebunden sind, sondern an mehreren Commits gleichzeitig. Diese Organisation ermöglicht es, eine Bitmap zur Bestimmung der Objekte fĂŒr Commits in verschiedenen Zweigen zu verwenden, was in großen Repositorien die Notwendigkeit verringert, eine große Anzahl individueller Bitmaps zu erstellen, und erheblich die Objektdurchlaufgeschwindigkeit erhöht, um festzustellen, 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 die neue Art von Bitmaps zu aktivieren und die Logik ihrer Auswahl und Nutzung zu bestimmen, wurde eine Reihe von Einstellungen „bitmapPseudoMerge“ vorgeschlagen: 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 umgesetzt, bei der anstelle von separaten Optionen zum Anzeigen, Umbenennen und Löschen von Einstellungen und Sektionen wie „—get“, „—get-all“, „—unset“ und „—remove-section“ eine Reihe separater Subbefehle angeboten wird. Beispielsweise kann nun der Befehl „git config list“ verwendet werden, um alle Repository-Einstellungen anzuzeigen, und der Befehl „git config get “, um den Inhalt eines bestimmten Parameters zu ĂŒberprĂŒfen. FĂŒr eine zusĂ€tzliche Filterung der Ergebnisse kann mit der Option „—regexp“ ein Filter basierend auf regulĂ€ren AusdrĂŒcken festgelegt werden.
  • Im Protokoll „credential helper“, das zum Übertragen von Anmeldeinformationen beim Zugriff auf Repositories mit eingeschrĂ€nktem Zugriff verwendet wird, wurde die UnterstĂŒtzung neuer Felder „authtype“ und „credential“ hinzugefĂŒgt, die die Erstellung von Handlern fĂŒr HTTP-Authentifizierungssysteme ermöglichen, die nicht auf die ÜberprĂŒfung von Benutzername und Passwort beschrĂ€nkt sind, zum Beispiel bei Verwendung eines Bearer Tokens in OAuth 2.0. Bislang mussten sensible Daten im Klartext im Parameter http.extraHeader ĂŒbergeben werden, um mit solchen Authentifizierungssystemen zu arbeiten. DarĂŒber hinaus wurde dem Protokoll die Möglichkeit hinzugefĂŒgt, den Status 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“ zur effektiven Speicherung von Verweisen auf Branches und Tags im Repository wurde fortgesetzt. Dieses Backend verwendet einen Blockspeicher, der von dem Projekt JGit eingesetzt wird und optimiert ist, um eine sehr große Anzahl von Verweisen zu speichern (traditionelle Speicherformate fĂŒr Verweise fĂŒhren in Repositories mit vielen Verweisen zu spĂŒrbaren Overheads durch die Ablage einer sehr großen Anzahl von Dateien in einem Verzeichnis, wenn die Verweise im Verzeichnis $GIT_DIR/refs gespeichert sind, oder die Notwendigkeit, eine große Datei bei jedem Update neu zu schreiben, wenn die Verweise in der Datei $GIT_DIR/packed_refs gespeichert sind). In der neuen Version wurde der Befehl „git refs migrate —ref-format=reftable“ hinzugefĂŒgt, um bestehende Repositories auf das Backend „reftable“ zu migrieren (zuvor wurde das Backend nur bei der Initialisierung des Repositories aktiviert).
  • In das Git-Team wurde die Option „—no-advice“ hinzugefĂŒgt, die alle Hinweise und Empfehlungen deaktiviert. Dies kann nĂŒtzlich sein, um zu verhindern, dass das Protokoll mit ĂŒberflĂŒssigen Informationen ĂŒberladen wird, wenn Git automatisiert aufgerufen wird.
  • Es hat mit dem Prozess begonnen, einige PrĂŒfungen aus dem Testset auf Unit-Tests umzustellen, was das Testen von Low-Level-Komponenten vereinfachen und die Effizienz des Testprozesses auf der Windows-Plattform steigern wird, auf der hohe Overheadkosten durch das Starten einer großen Anzahl von Prozessen wĂ€hrend der AusfĂŒhrung der in Form von Shell-Skripten implementierten Tests entstehen.
  • Im Code zur Analyse der Farbeinstellungen wurde die Möglichkeit hinzugefĂŒgt, die Darstellung „#RGB“ neben „#RRGGBB“ zu verwenden.

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