Veröffentlichung des verteilten versionierten Systems Git 2.26

VerfĂŒgbar Veröffentlichung des verteilten versionierten Systems Git 2.26.0. Git gehört zu den beliebtesten, zuverlĂ€ssigen und leistungsstĂ€rksten Versionsverwaltungssystemen und bietet flexible Mittel fĂŒr nicht-lineare Entwicklungen, die auf dem Branching und Merging von Zweigen basieren. Um die IntegritĂ€t der Historie und die WiderstandsfĂ€higkeit gegenĂŒber nachtrĂ€glichen Änderungen zu gewĂ€hrleisten, werden alle vorherigen Historien in jedem Commit implizit gehasht, und es ist auch möglich, digitale Signaturen fĂŒr bestimmte Tags und Commits der Entwickler zu verwenden.

Im Vergleich zur vorherigen Version wurden in die neue Version 504 Änderungen aufgenommen, die mit UnterstĂŒtzung von 64 Entwicklern vorbereitet wurden, von denen 12 erstmals an der Entwicklung mitwirkten. Haupt Neuheiten:

  • Der Standard wurde auf die zweite Version geĂ€ndert des Kommunikationsprotokolls Git, das beim Remote-Zugriff des Clients auf den Git-Server verwendet wird. Die zweite Version des Protokolls ist bemerkenswert, da sie die Möglichkeit bietet, Branches und Tags auf der Serverseite zu filtern, was dem Client eine verkĂŒrzte Liste von Referenzen zurĂŒckgibt. Zuvor erhielt der Client bei der AusfĂŒhrung eines Befehls zum Abrufen stets die vollstĂ€ndige Liste der Referenzen im gesamten Repository, selbst wenn er nur einen Branch aktualisierte oder die AktualitĂ€t seiner Repository-Kopie ĂŒberprĂŒfte. Eine weitere bemerkenswerte Neuerung ist die Möglichkeit, dem Protokoll neue Funktionen hinzuzufĂŒgen, sobald neue FunktionalitĂ€ten im Werkzeugkasten verfĂŒgbar sind. Der Client-Code bleibt mit dem alten Protokoll kompatibel und kann weiterhin sowohl mit neuen als auch mit alten Servern arbeiten, indem er automatisch auf die erste Version zurĂŒckgreift, falls der Server die zweite nicht unterstĂŒtzt.
  • Der Befehl „git config“ hat die Option „—show-scope“ hinzugefĂŒgt, die es erleichtert, den Ort zu identifizieren, an dem bestimmte Einstellungen definiert sind. Git ermöglicht die Definition von Einstellungen an verschiedenen Orten: im Repository (.git/info/config), im Benutzerverzeichnis (~/.gitconfig), in der systemweiten Konfigurationsdatei (/etc/gitconfig) sowie ĂŒber Befehlszeilenoptionen und Umgebungsvariablen. Bei der AusfĂŒhrung von „git config“ ist es ziemlich schwierig zu verstehen, wo genau die gesuchte Einstellung definiert ist. Um dieses Problem zu lösen, war die Option „—show-origin“ verfĂŒgbar, die lediglich den Pfad zur Datei anzeigt, in der die Einstellung definiert ist, was nĂŒtzlich ist, wenn man die Datei bearbeiten möchte, jedoch nicht hilft, wenn man den Wert ĂŒber „git config“ mit den Optionen „—system“, „—global“ oder „—local“ Ă€ndern möchte. Die neue Option „—show-scope“ zeigt den Kontext der Variablenbestimmung an und kann zusammen mit „—show-origin“ verwendet werden:

    $ git —list —show-scope —show-origin
    global file:/home/user/.gitconfig diff.interhunkcontext=1
    global file:/home/user/.gitconfig push.default=current
    [
]
    local file:.git/config branch.master.remote=origin
    local file:.git/config branch.master.merge=refs/heads/master

    $ git config —show-scope —get-regexp ‘diff.*’
    global diff.statgraphwidth 35
    local diff.colormoved plain

    $ git config —global —unset diff.statgraphwidth

  • In den Bindungseinstellungen Anmeldedaten Die Verwendung von Platzhaltern in URLs ist erlaubt. Alle Einstellungen fĂŒr HTTP und Anmeldedaten in Git können sowohl fĂŒr alle Verbindungen (http.extraHeader, credential.helper) als auch fĂŒr URL-spezifische Verbindungen (credential.https://example.com.helper, credential.https://example.com.helper) festgelegt werden. Bisher war die Verwendung von Platzhaltern wie *.example.com nur fĂŒr HTTP-Einstellungen zulĂ€ssig, aber nicht fĂŒr die Bindung von Anmeldedaten. In Git 2.26 wurden diese Unterschiede behoben, sodass beispielsweise zur Bindung eines Benutzernamens an alle Subdomains nun Folgendes angegeben werden kann:

    [credential «https://*.example.com»]

    username = ttaylorr

  • Die experimentelle UnterstĂŒtzung fĂŒr partielle Klonierung (partial clones) wurde weiter ausgebaut, wodurch nur ein Teil der Daten ĂŒbertragen und mit einer unvollstĂ€ndigen Kopie des Repositories gearbeitet werden kann. In dieser neuen Version wurde der Befehl "git sparse-checkout add" hinzugefĂŒgt, der es ermöglicht, einzelne Verzeichnisse fĂŒr die Anwendung der "checkout"-Operation nur auf einen Teil des Arbeitsbaums hinzuzufĂŒgen, anstatt alle Ă€hnlichen Verzeichnisse gleichzeitig ĂŒber den Befehl "git sparse-checkout set" aufzulisten (es können Verzeichnisse einzeln hinzugefĂŒgt werden, ohne die gesamte Liste jedes Mal erneut angeben zu mĂŒssen).
    Zum Beispiel, um das Repository git/git zu klonen, ohne Blobs zu ĂŒbertragen, die ÜberprĂŒfung nur auf das Stammverzeichnis der Arbeitskopie zu beschrĂ€nken und eine separate Kennzeichnung fĂŒr das Abrufen der Verzeichnisse „t“ und „Documentation“ anzugeben, können Sie Folgendes verwenden:

    $ git clone —filter=blob:none —sparse git@github.com:git/git.git

    $ cd git
    $ git sparse-checkout init —cone

    $ git sparse-checkout add t
    
.
    $ git sparse-checkout add Documentation
    
.
    $ git sparse-checkout list
    Documentation
    t

  • Die Leistung des Befehls „git grep“ wurde erheblich verbessert, wenn er sowohl im aktuellen Inhalt des Repositories als auch in historischen Revisionen zur Suche verwendet wird. Um die Suche zu beschleunigen, war es möglich, den Inhalt des Arbeitsverzeichnisses mit mehreren Threads zu scannen („git grep —threads“), jedoch war die Suche in historischen Revisionen einstufig. Diese EinschrĂ€nkung wurde jetzt durch die Implementierung der Möglichkeit, LesevorgĂ€nge aus dem Objektspeicher zu parallelisieren, aufgehoben. StandardmĂ€ĂŸig wird die Anzahl der Threads auf die Anzahl der CPU-Kerne eingestellt, was in den meisten FĂ€llen die explizite Angabe der Option „—threads“ ĂŒberflĂŒssig macht.
  • UnterstĂŒtzung fĂŒr die automatische VervollstĂ€ndigung von Subkommandos, Pfaden, Links und anderen Argumenten des Befehls „git worktree“ hinzugefĂŒgt, die das Arbeiten mit mehreren Arbeitskopien eines Repositories ermöglicht.
  • UnterstĂŒtzung fĂŒr helle Farben hinzugefĂŒgt, die ANSI-Escape-Sequenzen unterstĂŒtzen. Beispielsweise können in den Farbkonfigurationen „git config —color“ oder „git diff —color-moved“ ĂŒber die Option „—format“ fĂŒr hellblau „%C(brightblue)“ angegeben werden.
  • Eine neue Version des Skripts hinzugefĂŒgt fsmonitor-watchman, die eine Integration mit dem Mechanismus Facebook Watchman zur Beschleunigung der Überwachung von DateiĂ€nderungen und dem Erscheinen neuer Dateien gewĂ€hrleistet. Nach dem Update von git ist es erforderlich, den Hook im Repository zu ersetzen. Optimierungen zur Beschleunigung von partiellen KlonvorgĂ€ngen (partial clones) hinzugefĂŒgt, die mit der Anwendung von Bitmaps (bitmap machinery) verbunden sind, um eine vollstĂ€ndige Durchsuchung aller Objekte wĂ€hrend der Ausgabe-Filterung zu vermeiden. Die ÜberprĂŒfung von Blobs (—filter=blob:none und —filter=blob:limit=n) wird beim partiellen Klonen jetzt
  • Optimierungen wurden hinzugefĂŒgt, um die VorgĂ€nge des partiellen Klonens (partial clones) durch den Einsatz von Bitmaps zu beschleunigen.
    deutlich schneller durchgefĂŒhrt. GitHub hat angekĂŒndigt, die Patches mit diesen Optimierungen und die experimentelle UnterstĂŒtzung fĂŒr partielle KlonvorgĂ€nge anzuwenden.
    Deutlich schneller. GitHub hat die Anwendung von Patches mit diesen Optimierungen und die experimentelle UnterstĂŒtzung fĂŒr das partielle Klonen angekĂŒndigt.
  • Der Befehl „git rebase“ wurde auf eine andere Backend-Implementierung umgestellt, die standardmĂ€ĂŸig die „merge“-Technik verwendet (frĂŒher fĂŒr „rebase -i“ genutzt), anstelle von „patch+apply“. In einigen Aspekten unterscheiden sich die Backends; zum Beispiel bietet das neue Backend nach Fortsetzung der Operation nach der Behebung von Konflikten (git rebase --continue) die Möglichkeit, die Commit-Nachricht zu bearbeiten, wĂ€hrend das alte einfach die vorherige Nachricht ĂŒbernommen hat. Um das alte Verhalten wiederherzustellen, kann die Option „--apply“ verwendet oder die Konfigurationsvariable ‚rebase.backend‘ auf ‚apply‘ gesetzt werden.
  • Ein Beispiel fĂŒr einen Handler fĂŒr Authentifizierungsparameter, die ĂŒber .netrc definiert sind, wurde in eine sofort einsatzbereite Form gebracht.
  • Die Einstellung gpg.minTrustLevel wurde hinzugefĂŒgt, um ein minimales Vertrauensniveau fĂŒr verschiedene Elemente festzulegen, die digitale Signaturen ĂŒberprĂŒfen.
  • Bei „git rm“ und „git stash“ wurde die Option „--pathspec-from-file“ hinzugefĂŒgt.
  • Die Verbesserung der Test-Suites wurde fortgesetzt, um den Übergang zum SHA-2-Hashalgorithmus anstelle von SHA-1 vorzubereiten.

Quelle: opennet.ru

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