Hajutatud allika juhtimissüsteemi Git 2.26 väljalase

Saadaval hajutatud allika juhtimissüsteemi vabastamine git 2.26.0. Git on üks populaarsemaid, usaldusväärsemaid ja suure jõudlusega versioonikontrollisüsteeme, mis pakub paindlikke mittelineaarseid arendustööriistu, mis põhinevad harude hargnemisel ja ühendamisel. Ajaloo terviklikkuse ja tagasiulatuvatele muudatustele vastupidavuse tagamiseks kasutatakse igas sissekandes kogu eelneva ajaloo kaudset räsimist, samuti on võimalik kontrollida üksikuid silte ja kohustusi arendajate digiallkirjadega.

Võrreldes eelmise versiooniga, sisaldas uus versioon 504 muudatust, mis valmistati ette 64 arendaja osalusel, millest 12 osales arenduses esmakordselt. Kõik uuendused:

  • Vaikimisi on lülitatud teine ​​versioon Giti sideprotokoll, mida kasutatakse siis, kui klient loob kaugühenduse Git-serveriga. Protokolli teine ​​versioon on tähelepanuväärne selle poolest, et pakub võimalust filtreerida serveri poolel filiaale ja silte, tagastades kliendile lühendatud linkide loendi. Varem saatis iga tõmbamiskäsk kliendile alati kogu hoidla viidete täieliku loendi, isegi kui klient värskendas ainult ühte haru või kontrollis hoidla koopia ajakohasust. Veel üks tähelepanuväärne uuendus on võimalus lisada protokollile uusi funktsioone, kui tööriistakomplektis on saadaval uued funktsioonid. Kliendikood jääb vana protokolliga ühilduvaks ja võib jätkata tööd nii uute kui ka vanade serveritega, langedes automaatselt tagasi esimesele versioonile, kui server teist ei toeta.
  • Käsule "git config" on lisatud valik "-show-scope", mis muudab teatud seadete määratlemise koha tuvastamise lihtsamaks. Git võimaldab määrata sätteid erinevates kohtades: hoidlas (.git/info/config), kasutajakataloogis (~/.gitconfig), süsteemiüleses konfiguratsioonifailis (/etc/gitconfig) ja käsu kaudu rea valikud ja keskkonnamuutujad. Käsu “git config” käivitamisel on üsna raske aru saada, kus täpselt soovitud säte on määratletud. Selle probleemi lahendamiseks oli suvand "--show-origin" saadaval, kuid see näitab ainult selle faili teed, milles säte on määratletud, mis on kasulik, kui kavatsete faili redigeerida, kuid ei aita, kui tuleb väärtust muuta "git config" kaudu, kasutades valikuid "--system", "--global" või "-local". Uus valik "--show-scope" kuvab muutuja määratluse konteksti ja seda saab kasutada koos käsuga -show-origin:

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

    $ git config --show-scope --get-regexp 'diff.*'
    globaalne diff.statgraphwidth 35
    kohalik diff.värvliigustatud tasandik

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

  • Köitmisseadetes volikirjad Maskide kasutamine URL-ides on lubatud. Giti HTTP-sätteid ja mandaate saab määrata nii kõikide ühenduste jaoks (http.extraHeader, credential.helper) kui ka URL-ipõhiste ühenduste jaoks (credential.https://example.com.helper, credential.https: //example. com.helper). Seni olid metamärgid, nagu *.example.com, lubatud ainult HTTP-sätete jaoks, kuid neid ei toetatud mandaatide sidumisel. Git 2.26-s on need erinevused kõrvaldatud ja näiteks kasutajanime sidumiseks kõigi alamdomeenidega saate nüüd määrata:

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

    kasutajanimi = ttaylorr

  • Osalise kloonimise (osaliste kloonide) eksperimentaalse toe laiendamine jätkub, võimaldades teil edastada ainult osa andmetest ja töötada hoidla mittetäieliku koopiaga. Uus versioon lisab uue käsu "git sparse-checkout add", mis võimaldab lisada üksikuid katalooge, et rakendada operatsiooni "checkout" ainult osale tööpuust, selle asemel, et loetleda kõik sellised kataloogid korraga käsuga "git" sparse-checkout set" (saate lisada ükshaaval ühe kataloogi, ilma kogu loendit iga kord uuesti täpsustamata).
    Näiteks git/git hoidla kloonimiseks ilma blobe sidumata, piirates väljamakset ainult töökoopia juurkataloogiga ja märkides eraldi väljavõtu kataloogide "t" ja "Dokumentatsioon" jaoks, võite määrata:

    $ git kloon --filter=blob:none --sparse [meiliga kaitstud]:git/git.git

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

    $ git hõre-kassasse lisa t
    ....
    $ git sparse-checkout lisage dokumentatsioon
    ....
    $ git hõre kassaloend
    dokumentatsioon
    t

  • Käsu "git grep", mida kasutatakse nii hoidla praeguse sisu kui ka ajalooliste versioonide otsimiseks, jõudlust on oluliselt täiustatud. Otsingu kiirendamiseks oli võimalik skaneerida tööpuu sisu mitme lõime abil (“git grep –lõimed”), kuid ajalooliste versioonide otsing oli ühelõimeline. Nüüd on see piirang eemaldatud, rakendades võimalust paralleelstada lugemistoiminguid objektimälust. Vaikimisi on lõimede arv võrdne protsessori tuumade arvuga, mis enamikul juhtudel ei nõua nüüd suvandi "-threads" selgesõnalist määramist.
  • Lisatud käsu „git worktree” alamkäskude, teede, linkide ja muude argumentide automaatse lõpetamise tugi, mis võimaldab töötada mitme hoidla töökoopiaga.
  • Lisatud on ANSI paojärjestustega erksate värvide tugi. Näiteks saate esiletõstetud värvide sätetes „git config –color” või „git diff –color-moved” määrata „%C(brightblue)” erksinise valiku „--format” kaudu.
  • Lisatud on skripti uus versioon fsmonitor-watchman, pakkudes integratsiooni mehhanismiga Facebooki valvur failimuudatuste jälgimise ja uute failide ilmumise kiirendamiseks. Pärast värskendamist on git vajalik asendada konks hoidlasse.
  • Lisatud optimeerimised, et kiirendada osaliste kloonide loomist bitkaartide kasutamisel
    (bitmap machinery), et vältida väljundi filtreerimisel kõigi objektide täielikku otsimist. Nüüd kontrollitakse osalise kloonimise ajal plekke (—filter=blob:none ja —filter=blob:limit=n)
    oluliselt kiiremini. GitHub teatas nende optimeeringute ja osalise kloonimise eksperimentaalse toega plaastritest.

  • Käsk "git rebase" on viidud teise taustaprogrammi, kasutades käsku "patch+apply" asemel vaikimisi "merge" (varem kasutati "rebase -i" jaoks). Taustaprogrammid erinevad mõnes pisiasjas, näiteks pärast konflikti lahendamist toimingu jätkamist (git rebase --continue) pakub uus taustaprogramm sissekandesõnumit redigeerida, samas kui vana kasutas lihtsalt vana sõnumit. Vana käitumise juurde naasmiseks võite kasutada suvandit "--apply" või määrata konfiguratsioonimuutuja "rebase.backend" väärtuseks "apply".
  • Näide faili .netrc kaudu määratud autentimisparameetrite töötlejast on taandatud vormile, mis sobib kasutamiseks karbist väljas.
  • Lisati säte gpg.minTrustLevel, et määrata minimaalne usaldustase erinevatele digitaalallkirja kontrollimist teostavatele elementidele.
  • Lisatud "--pathspec-from-file" valik "git rm" ja "git stash".
  • Katsekomplektide täiustamine jätkus, et valmistuda SHA-2 asemel SHA-1 räsimisalgoritmile üleminekuks.

Allikas: opennet.ru

Lisa kommentaar