Verëffentlechung vum verdeelte Quellkontrollsystem Git 2.26

Verfügbar Verëffentlechung vun engem verdeelt Quell Kontroll System Gitt 2.26.0. Git ass ee vun de populäersten, zouverlässegsten an héich performante Versiounskontrollsystemer, déi flexibel net-linear Entwécklungsinstrumenter baséieren op Verzweigung a Fusioun. Fir d'Integritéit vun der Geschicht an d'Resistenz géint retroaktiv Ännerungen ze garantéieren, gëtt implizit Hashing vun der ganzer viregter Geschicht an all Engagement benotzt; et ass och méiglech individuell Tags ze zertifiéieren an engagéiert mat digitalen Ënnerschrëften vun den Entwéckler.

Am Verglach zu der viregter Verëffentlechung, enthält déi nei Versioun 504 Ännerungen, virbereet mat der Participatioun vu 64 Entwéckler, vun deenen 12 fir d'éischt Kéier un der Entwécklung deelgeholl hunn. Haaptstrooss Innovatiounen:

  • De Standard gouf op zweet Versioun Git Kommunikatiounsprotokoll, dee benotzt gëtt wann e Client op afstand mat engem Git Server verbënnt. Déi zweet Versioun vum Protokoll ass bemierkenswäert fir d'Fäegkeet fir Filialen an Tags op der Server Säit ze filteren, eng verkierzte Lëscht vu Linken op de Client zréckzeginn. Virdru géif all Pull Kommando dem Client ëmmer déi komplett Lëscht vu Referenzen am ganze Repository schécken, och wann de Client nëmmen eng Branche aktualiséiert oder kontrolléiert datt hir Kopie vum Repository aktuell war. Eng aner bemierkenswäert Innovatioun ass d'Fäegkeet fir nei Fäegkeeten un de Protokoll ze addéieren wéi nei Funktionalitéit am Toolkit verfügbar ass. De Client Code bleift kompatibel mam ale Protokoll a ka weider mat neien an alen Serveren schaffen, automatesch op déi éischt Versioun zréckfalen wann de Server déi zweet net ënnerstëtzt.
  • D'Optioun "-show-scope" gouf zum Kommando "git config" bäigefüügt, wat et méi einfach mécht d'Plaz z'identifizéieren wou verschidde Astellunge definéiert sinn. Git erlaabt Iech Astellungen op verschiddene Plazen ze definéieren: am Repository (.git/info/config), am Benotzerverzeechnes (~/.gitconfig), an der systemwäit Konfiguratiounsdatei (/etc/gitconfig), an duerch Kommando Linn Optiounen an Ëmwelt Verännerlechen. Wann Dir "git config" ausféiert, ass et zimmlech schwéier ze verstoen wou genau de gewënschten Astellung definéiert ass. Fir dëse Problem ze léisen, war d'Optioun "--show-origin" verfügbar, awer et weist nëmmen de Wee op d'Datei an där d'Astellung definéiert ass, wat nëtzlech ass wann Dir wëlles de Fichier z'änneren, awer hëlleft net wann Dir muss de Wäert duerch "git config" änneren mat Optiounen "--system", "--global" oder "-local". Déi nei Optioun "--show-scope" weist de variabelen Definitiounskontext a kann a Verbindung mat -show-origin benotzt ginn:

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

    $ git config --show-scope --get-regexp 'diff.*'
    global diff.statgraphwidth 35
    lokal diff.colormoved Einfache

    $ git config --global --unset diff.statgraphwidth

  • An de verbindlechen Astellungen Umeldungsinformatiounen D'Benotzung vu Masken an URLen ass erlaabt. All HTTP-Astellungen an Umeldungsinformatiounen am Git kënne souwuel fir all Verbindungen (http.extraHeader, credential.helper) a fir URL-baséiert Verbindungen (credential.https://example.com.helper, credential.https: //example. com.helper). Bis elo waren Wildcards wéi *.example.com nëmme fir HTTP-Astellungen erlaabt, awer net ënnerstëtzt fir Umeldungsbindung. Am Git 2.26 ginn dës Differenzen eliminéiert an zum Beispill fir e Benotzernumm un all Ënnerdomainen ze binden, kënnt Dir elo spezifizéieren:

    [Umeldungsinformatioun "https://*.example.com"]

    Benotzernumm = ttaylorr

  • D'Expansioun vun der experimenteller Ënnerstëtzung fir deelweis Klonen (deelweis Klonen) geet weider, wat Iech erlaabt nëmmen en Deel vun den Donnéeën ze transferéieren a mat enger onkomplett Kopie vum Repository ze schaffen. Déi nei Verëffentlechung füügt en neie Kommando "git sparse-checkout add", wat Iech erlaabt eenzel Verzeichnisser ze addéieren fir d'"Checkout" Operatioun nëmmen op en Deel vum Aarbechtsbaum z'applizéieren, anstatt all sou Verzeichnisser gläichzäiteg duerch de Kommando "git" ze notéieren. sparse-checkout set" (Dir kënnt een nom aneren Dossier derbäi, ouni all Kéier déi ganz Lëscht nei ze spezifizéieren).
    Zum Beispill, fir e Git / Git Repository ze klonen ouni Blobs ze verëffentlechen, d'Kasse limitéiert op nëmmen de Root-Verzeichnis vun der Aarbechtskopie, a separat d'Kasse fir d'"t" an "Dokumentatioun" Verzeichnisser ze markéieren, kënnt Dir spezifizéieren:

    $ git clone --filter=blob:none --sparse [Email geschützt]:git/git.git

    $cd git
    $ git sparse-checkout init --cone

    $ git sparse-checkout add t
    ....
    $ git sparse-checkout derbäi Dokumentatioun
    ....
    $ git sparse-Checkout Lëscht
    Dokumentatioun
    t

  • D'Performance vum Kommando "git grep", benotzt fir souwuel den aktuellen Inhalt vum Repository wéi och historesch Versiounen ze sichen, gouf wesentlech verbessert. Fir d'Sich ze beschleunegen, war et méiglech den Inhalt vum Aarbechtsbaum mat multiple Threads ze scannen ("git grep -threads"), awer d'Sich an historesche Versioune war Single-threaded. Elo gouf dës Begrenzung geläscht andeems d'Fäegkeet implementéiert fir Liesoperatioune vun der Objektlagerung parallel ze maachen. Par défaut ass d'Zuel vun den Threads gläich wéi d'Zuel vun den CPU-Cores gesat, wat an de meeschte Fäll elo net explizit d'Optioun "-threads" erfuerdert.
  • Zousätzlech Ënnerstëtzung fir Autocompletion vun Input vun Ënnerbefehl, Weeër, Linken an aner Argumenter vum Kommando "git worktree", wat Iech erlaabt Iech mat verschiddenen Aarbechtskopien vum Repository ze schaffen.
  • Zousätzlech Ënnerstëtzung fir helle Faarwen déi ANSI Fluchsequenzen hunn. Zum Beispill, an den Astellunge fir Highlight Faarwen "git config -color" oder "git diff -color-moved" kënnt Dir "%C(brightblue)" iwwer d'"--format" Optioun fir hell blo spezifizéieren.
  • Nei Versioun vum Skript dobäigesat fsmonitor-Wuechter, suergt Integratioun mam Mechanismus Facebook Watchman fir d'Verfollegung vun Dateiännerungen an d'Erscheinung vun neie Dateien ze beschleunegen. Nom Update git ass erfuerderlech ersat gëtt Haken an de Repository.
  • Optimisatiounen bäigefüügt fir deelweis Klonen ze beschleunegen wann Dir Bitmaps benotzt
    (Bitmap Maschinnen) fir eng komplett Sich vun all Objeten ze vermeiden wann Dir d'Ausgab filtert. Iwwerpréift no Blobs (—filter=blob:none an —filter=blob:limit=n) während deelweis Klonen gëtt elo gemaach
    däitlech méi séier. GitHub huet Patches mat dësen Optimisatiounen an experimenteller Ënnerstëtzung fir deelweis Klonen ugekënnegt.

  • De Kommando "git rebase" gouf op en anere Backend geplënnert, mat dem Standard 'merge' Mechanismus (virdrun benotzt fir "rebase -i") anstatt 'Patch+apply'. D'Backends ënnerscheeden sech op e puer kleng Weeër, zum Beispill, nodeems Dir eng Operatioun weidergeet nodeems Dir e Konflikt geléist huet (git rebase --continue), bitt den neie Backend d'Verpflichtungsmeldung z'änneren, während deen alen einfach den alen Message benotzt huet. Fir op dat alt Verhalen zréckzekommen, kënnt Dir d'Optioun "--apply" benotzen oder d'Konfiguratiounsvariabel 'rebase.backend' op 'applizéieren' setzen.
  • E Beispill vun engem Handler fir Authentifikatioun Parameteren uginn via .netrc gouf op eng Form gëeegent fir benotzen aus der Këscht reduzéiert.
  • D'gpg.minTrustLevel Astellung bäigefüügt fir de Minimum Vertrauensniveau fir verschidden Elementer ze setzen déi d'digital Ënnerschrëft Verifizéierung ausféieren.
  • Zousätzlech "-pathspec-from-Datei" Optioun fir "git rm" an "git stash".
  • D'Verbesserung vun Testsuiten ass weider an der Virbereedung fir den Iwwergank zum SHA-2 Hashing Algorithmus anstatt SHA-1.

Source: opennet.ru

Setzt e Commentaire