Release fan it ferspraat boarnekontrôlesysteem Git 2.26

Beskikber frijlitting fan it ferspraat boarne kontrôle systeem git 2.26.0. Git is ien fan 'e populêrste, betroubere en heechprestearjende ferzjekontrôlesystemen dy't fleksibele net-lineêre ûntwikkelingsynstruminten leveret basearre op tûken en gearfoegjen fan tûken. Om de yntegriteit fan 'e skiednis en ferset tsjin retroaktive wizigingen te garandearjen, wurdt ymplisite hashing fan' e hiele foarige skiednis yn elke commit brûkt, it is ek mooglik om yndividuele tags te ferifiearjen en commits mei digitale hantekeningen fan 'e ûntwikkelders.

Yn ferliking mei de foarige release waarden 504 wizigingen akseptearre yn 'e nije ferzje, taret mei de dielname fan 64 ûntwikkelders, wêrfan 12 foar it earst meidien oan 'e ûntwikkeling. haad ynnovaasjes:

  • De standert is oerskeakele nei twadde ferzje Git-kommunikaasjeprotokol, dat wurdt brûkt as in kliïnt op ôfstân ferbynt mei in Git-tsjinner. De twadde ferzje fan it protokol is opmerklik foar it jaan fan de mooglikheid om tûken en tags te filterjen op 'e serverkant, wêrtroch in ferkoarte list mei keppelings nei de kliïnt weromkomt. Eartiids soe elk pull-kommando de kliïnt altyd de folsleine list mei referinsjes yn 'e heule repository stjoere, sels as de kliïnt mar ien tûke bywurke of kontrolearre dat har kopy fan' e repository aktueel wie. In oare opmerklike ynnovaasje is de mooglikheid om nije mooglikheden ta te foegjen oan it protokol as nije funksjonaliteit beskikber wurdt yn 'e toolkit. De kliïntkoade bliuwt kompatibel mei it âlde protokol en kin wurkje mei sawol nije as âlde servers, automatysk weromfalle nei de earste ferzje as de server de twadde net stipet.
  • De opsje "-show-scope" is tafoege oan it kommando "git config", wêrtroch it makliker is om it plak te identifisearjen wêr't bepaalde ynstellingen definieare binne. Git lit jo ynstellings op ferskate plakken definiearje: yn it repository (.git/info/config), yn de brûkersmap (~/.gitconfig), yn it systeemwiid konfiguraasjetriem (/etc/gitconfig), en fia kommando line opsjes en omjouwingsfariabelen. By it útfieren fan "git config" is it frij lestich om te begripen wêr't krekt de winske ynstelling is definiearre. Om dit probleem op te lossen wie de opsje "--show-origin" beskikber, mar it toant allinich it paad nei it bestân wêryn de ynstelling is definiearre, wat nuttich is as jo fan doel binne it bestân te bewurkjen, mar it helpt net as jo moatte de wearde feroarje fia "git config" mei opsjes "--system", "--global" of "-local". De nije opsje "--show-scope" toant de kontekst fan fariabele definysje en kin brûkt wurde yn kombinaasje mei -show-origin:

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

    $ git config --show-scope --get-regexp 'diff.*'
    globale diff.statgraphwidth 35
    lokale diff.colormoved plain

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

  • Yn de binende ynstellings bewiisbrieven It brûken fan maskers yn URL's is tastien. Elke HTTP-ynstellings en referinsjes yn Git kinne sawol ynsteld wurde foar alle ferbiningen (http.extraHeader, credential.helper) as foar URL-basearre ferbiningen (credential.https://example.com.helper, credential.https: //example. com.helper). Oant no ta wiene jokertekens lykas *.example.com allinich tastien foar HTTP-ynstellingen, mar waarden net stipe foar referinsjesbining. Yn Git 2.26 wurde dizze ferskillen elimineare en, bygelyks, om in brûkersnamme te binen oan alle subdomeinen kinne jo no opjaan:

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

    brûkersnamme = ttaylorr

  • De útwreiding fan eksperimintele stipe foar partiel klonen (diele klonen) giet troch, wêrtroch jo mar in diel fan 'e gegevens kinne oerdrage en wurkje mei in ûnfolsleine kopy fan it repository. De nije release foeget in nij kommando ta "git sparse-checkout add" ta, wêrmei jo yndividuele mappen taheakje kinne om de "checkout"-operaasje op mar in diel fan 'e wurkbeam ta te passen, ynstee fan alle soksoarte mappen tagelyk te listjen fia it kommando "git sparse-checkout set" (jo kinne ien foar ien map taheakje, sûnder elke kear de folsleine list opnij oan te jaan).
    Om bygelyks in git/git-repository te klonen sûnder blobs te begean, de kassa te beheinen ta allinich de rootmap fan 'e wurkkopy, en it apart markearjen fan kassa foar de "t" en "Documentation" mappen, kinne jo spesifisearje:

    $ git clone --filter=blob:gjin --sparse [e-post beskerme]:git/git.git

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

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

  • De prestaasjes fan it kommando "git grep", brûkt om sawol de hjoeddeistige ynhâld fan 'e repository as histoaryske ferzjes te sykjen, is signifikant ferbettere. Om it sykjen te rapperjen, wie it mooglik om de ynhâld fan 'e wurkbeam te scannen mei meardere threaden ("git grep -threads"), mar it sykjen yn histoaryske ferzjes wie single-threaded. No is dizze beheining fuortsmiten troch it ymplementearjen fan de mooglikheid om lêsoperaasjes te parallelisearjen fan 'e objektopslach. Standert is it oantal triedden gelyk ynsteld oan it oantal CPU-kearnen, wat yn 'e measte gefallen no net nedich is om de opsje "-threads" eksplisyt yn te stellen.
  • Stipe tafoege foar autofoltôging fan ynfier fan subkommando's, paden, keppelings en oare arguminten fan it kommando "git worktree", wêrtroch jo kinne wurkje mei ferskate wurkkopyen fan it repository.
  • Stipe tafoege foar heldere kleuren dy't ANSI-escape-sekwinsjes hawwe. Bygelyks, yn 'e ynstellings foar markearkleuren "git config -color" of "git diff -color-moved" kinne jo "%C(brightblue)" oantsjutte fia de "--format" opsje foar helder blau.
  • Nije ferzje fan skript tafoege fsmonitor-wachter, it bieden fan yntegraasje mei it meganisme Facebook Watchman om it folgjen fan bestânferoarings en it ferskinen fan nije bestannen te rapperjen. Nei it bywurkjen fan git is nedich ferfange heakje yn 'e repository.
  • Optimisaasjes tafoege om dielklonen te fersnellen by it brûken fan bitmaps
    (bitmapmasines) om in folsleine sykopdracht fan alle objekten te foarkommen by it filterjen fan de útfier. Kontrolearje op blobs (—filter=blob:gjin en —filter=blob:limit=n) by in part klonen wurdt no útfierd
    signifikant flugger. GitHub kundige patches oan mei dizze optimisaasjes en eksperimintele stipe foar partiel klonen.

  • It kommando "git rebase" is ferpleatst nei in oare backend, mei it standert 'merge'-meganisme (earder brûkt foar "rebase -i") ynstee fan 'patch+apply'. De backends ferskille yn guon lytse wizen, bygelyks, nei it fuortsetten fan in operaasje nei it oplossen fan in konflikt (git rebase --continue), biedt de nije backend it commit-berjocht te bewurkjen, wylst de âlde gewoan it âlde berjocht brûkte. Om werom te gean nei it âlde gedrach, kinne jo de "--apply" opsje brûke of de 'rebase.backend' konfiguraasjefariabele ynstelle op 'apply'.
  • In foarbyld fan in handler foar autentikaasje parameters oantsjutte fia .netrc is redusearre ta in foarm geskikt foar gebrûk út it fak.
  • De gpg.minTrustLevel-ynstelling tafoege om it minimale fertrouwennivo yn te stellen foar ferskate eleminten dy't ferifikaasje fan digitale hantekening útfiere.
  • Added "--pathspec-from-file" opsje oan "git rm" en "git stash".
  • Ferbettering fan testsuites gie troch as tarieding op de oergong nei it SHA-2-hashingalgoritme ynstee fan SHA-1.

Boarne: opennet.ru

Add a comment