2. Februar vorgestellt Veröffentlichung des verteilten Systems zur Verwaltung von Quelltexten Git 2.53.
Git zeichnet sich durch hohe Leistungsfähigkeit aus und bietet Werkzeuge für die nichtlineare Entwicklung, die auf Verzweigung und Zusammenführung von Branches basieren. Zur Gewährleistung der Integrität der Historie und der Widerstandsfähigkeit gegenüber rückwirkenden Änderungen wird die gesamte vorherige Historie in jedem Commit implizit gehasht, ebenso wie die digitale Signatur jedes Tags und der Commits durch die Entwickler. Git-Code wird verbreitet unter der GPLv2+-Lizenz.
Im Vergleich zur vorherigen Veröffentlichung wurden in die neue Version 466 Änderungen aufgenommen, die mit Unterstützung von 70 Entwicklern erstellt wurden (21 davon nahmen erstmals an der Entwicklung von Git teil). Hauptpunkte Neuheiten:
- Hinzugefügt die Möglichkeit, die Strategie der geometrischen Paketierung von Repositories (git repack --geometric) auf teilweise geklonte externe Repositories anzuwenden, die im Promisor-Modus arbeiten (fehlende Objekte werden bei Bedarf nachgeladen). Bei der Neupackung mit den Optionen --geometric werden .promisor-Paketdateien separat verarbeitet und verpackt. Die geometrische Strategie erlaubt es, die Wartungszeit großer Monorepositories zu verkürzen, indem objektspezifisches Neupacken und unnötige ressourcenintensive Operationen wie das Zusammenführen aller Paketdateien vermieden werden (die geometrische Progression der Paketgrößen bleibt erhalten, bei der jede folgende Paketdatei mindestens doppelt so groß sein muss wie die vorherige).
- Das Team git fast-import hat die Option --signed-commits=strip-if-invalid hinzugefügt, um digitale Signaturen aus importierten Objekten zu entfernen, die nach einer Neuschreibung eines Teils der Repositoriumsgeschichte ungültig geworden sind. Zuvor konnte man entweder alle Signaturen importieren oder entfernen, ohne zwischen gültigen und ungültigen zu unterscheiden. Die Option strip-if-invalid ermöglicht es, Werkzeuge zur Erhaltung gültiger Signaturen und zur Neusignierung von Objekten mit ungültigen Signaturen zu implementieren.
- Der Befehl git repo structure gibt nun Informationen über die Größe aller erreichbaren Objekte (reachable) im Repository aus, unterteilt nach ihren Typen. Die Informationen werden jetzt in lesbarem Format mit Maßeinheiten angezeigt und getrennt für die tatsächliche und die auf der Festplatte belegte Größe dargestellt, sodass die Gesamtdiskgröße des Repositories besser eingeschätzt werden kann:
$ git repo structure | Repository structure | Value | | ——————— | ———- | | * References | | | * Count | 1.78 k | | * Branches | 5 | | * Tags | 1.03 k | | * Remotes | 749 | | * Others | 0 | | | | | * Reachable objects | | | * Count | 421.37 k | | * Commits | 88.03 k | | * Trees | 169.95 k | | * Blobs | 162.40 k | | * Tags | 994 | | * Inflated size | 7.61 GiB | | * Commits | 60.95 MiB | | * Trees | 2.44 GiB | | * Blobs | 5.11 GiB | | * Tags | 731.73 KiB | | * Disk size | 301.50 MiB | | * Commits | 33.57 MiB | | * Trees | 77.92 MiB | | * Blobs | 189.44 MiB | | * Tags | 578.13 KiB |
- Das git maintenance-Team hat den Unterbefehl is-needed hinzugefügt, um Wartungsoperationen am Repository nur dann durchzuführen, wenn dies notwendig ist.
- Im experimentellen git replay-Team wird standardmäßig die Aktualisierung von Referenzen in der Transaktion implementiert, anstatt anzuzeigen, wohin die Referenzen zeigen sollen, ohne sie zu aktualisieren.
- Im git blame-Team wurde die Möglichkeit zur Auswahl des Algorithmus zur Berechnung von Unterschieden mit der Option —diff-algorithm= hinzugefügt.
- In das git repo info-Team wurde die Option —all hinzugefügt.
- In Git-for-Windows wurde die Unterstützung für symbolische Links auf der Windows-Plattform übernommen.
Der vorherigen Version wurde hinzugefügt Warnung die standardmäßige Einbeziehung von Rust-Komponenten im Git 2.53. Tatsächlich gab es in Git 2.53 jedoch nur Methoden text(), arrayBuffer() und stream() hinzugefügt, um bestimmte Datentypen zu lesen; einige Verbesserungen der Rust-Unterstützung (Bau ohne GNU sed), aber der Bau mit Rust bei Verwendung von Makefile bleibt ist standardmäßig deaktiviert (erfordert das Setzen des Flags WITH_RUST), und bei Verwendung von Meson wird automatisch aktiviert bei Vorhandensein des rustc-Compilers eingeschlossen. In Git 3.0 wird Rust-Werkzeug haben die Absicht in die Liste der erforderlichen Build-Abhängigkeiten aufgenommen.
Quelle: linux.org.ru
