Paskirstytų šaltinių valdymo sistemos Git 2.26 išleidimas

Galima paskirstyto šaltinio valdymo sistemos išleidimas git 2.26.0. Git yra viena populiariausių, patikimiausių ir našiausių versijų valdymo sistemų, teikianti lanksčius nelinijinius kūrimo įrankius, pagrįstus šakojimu ir sujungimu. Siekiant užtikrinti istorijos vientisumą ir atsparumą retroaktyviems pokyčiams, kiekviename įsipareigojime naudojama netiesioginė visos ankstesnės istorijos maiša, taip pat galima sertifikuoti atskiras žymas ir įsipareigojimus skaitmeniniais kūrėjų parašais.

Palyginti su ankstesne versija, naujojoje versijoje buvo 504 pakeitimai, parengti dalyvaujant 64 kūrėjams, iš kurių 12 kūrime dalyvavo pirmą kartą. pagrindinis naujoves:

  • Numatytasis buvo perjungtas į antra versija Git ryšio protokolas, naudojamas, kai klientas nuotoliniu būdu prisijungia prie Git serverio. Antroji protokolo versija pasižymi tuo, kad suteikia galimybę filtruoti šakas ir žymes serverio pusėje, grąžinant klientui sutrumpintą nuorodų sąrašą. Anksčiau bet kokia ištraukimo komanda klientui visada siųsdavo visą nuorodų sąrašą visoje saugykloje, net kai klientas atnaujindavo tik vieną šaką arba tikrindavo, ar jo saugyklos kopija buvo atnaujinta. Kita pastebima naujovė yra galimybė pridėti naujų galimybių prie protokolo, kai įrankių rinkinyje atsiranda naujų funkcijų. Kliento kodas išlieka suderinamas su senuoju protokolu ir gali toliau dirbti tiek su naujais, tiek su senais serveriais, automatiškai grįžta į pirmąją versiją, jei serveris nepalaiko antrosios.
  • Parinktis „-show-scope“ buvo pridėta prie komandos „git config“, todėl lengviau nustatyti vietą, kurioje apibrėžti tam tikri nustatymai. „Git“ leidžia apibrėžti nustatymus įvairiose vietose: saugykloje (.git/info/config), vartotojo kataloge (~/.gitconfig), visos sistemos konfigūracijos faile (/etc/gitconfig) ir naudojant komandą. linijos parinktys ir aplinkos kintamieji. Vykdant „git config“ gana sunku suprasti, kur tiksliai apibrėžtas norimas nustatymas. Norėdami išspręsti šią problemą, buvo galima parinktis „--show-origin“, tačiau ji rodo tik kelią į failą, kuriame nustatytas parametras. Tai naudinga, jei ketinate redaguoti failą, bet nepadeda, jei reikia pakeisti reikšmę per „git config“ naudojant parinktis „--system“, „--global“ arba „-local“. Nauja parinktis „--show-scope“ rodo kintamojo apibrėžimo kontekstą ir gali būti naudojama kartu su -show-origin:

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

    $ git config --show-scope --get-regexp 'diff.*'
    global diff.statgraphwidth 35
    vietinis skirtumas.spalvaperkelta lyguma

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

  • Įrišimo nustatymuose kredencialus Leidžiama naudoti kaukes URL adresuose. Bet kokius „Git“ HTTP nustatymus ir kredencialus galima nustatyti tiek visiems ryšiams (http.extraHeader, credential.helper), tiek URL pagrįstiems ryšiams (credential.https://example.com.helper, credential.https: //example. com.pagalbininkas). Iki šiol pakaitos simboliai, tokie kaip *.example.com, buvo leidžiami tik HTTP nustatymams, bet nebuvo palaikomi kredencialų susiejimui. Git 2.26 versijoje šie skirtumai yra pašalinti ir, pavyzdžiui, norėdami susieti vartotojo vardą su visais padomeniais, dabar galite nurodyti:

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

    vartotojo vardas = ttaylorr

  • Eksperimentinis dalinio klonavimo (dalinių klonų) palaikymas tęsiamas, leidžiant perkelti tik dalį duomenų ir dirbti su nepilna saugyklos kopija. Nauja versija prideda naują komandą "git sparse-checkout add", kuri leidžia pridėti atskirus katalogus, kad "checkout" operacija būtų taikoma tik daliai darbo medžio, o ne iš karto išvardyti visus tokius katalogus naudojant komandą "git". sparse-checkout set“ (galite pridėti po vieną katalogą, kiekvieną kartą nenurodydami viso sąrašo).
    Pavyzdžiui, norėdami klonuoti „git“ / „git“ saugyklą neįtraukiant blobų, apribojant patikrą tik darbinės kopijos šakniniame kataloge ir atskirai pažymint „t“ ir „Documentation“ katalogų patikrą, galite nurodyti:

    $ git klonas --filter=blob:none --sparse [apsaugotas el. paštu]:git/git.git

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

    $ git sparse-checkout pridėti t
    ....
    $ git sparse-checkout pridėti dokumentaciją
    ....
    $ git retųjų kasų sąrašas
    Dokumentacija
    t

  • Komandos „git grep“, naudojamos ieškoti tiek dabartiniame saugyklos turinyje, tiek istorinėse versijose, našumas buvo žymiai patobulintas. Siekiant pagreitinti paiešką, buvo galima nuskaityti darbo medžio turinį naudojant kelias gijas („git grep – gijos“), tačiau paieška istorinėse redakcijose buvo vienos gijos. Dabar šis apribojimas buvo pašalintas įdiegus galimybę lygiagrečiai nuskaityti objektų saugykloje. Pagal numatytuosius nustatymus gijų skaičius yra lygus procesoriaus branduolių skaičiui, todėl daugeliu atvejų dabar nereikia aiškiai nustatyti parinkties „-threads“.
  • Pridėtas automatinio subkomandų, kelių, nuorodų ir kitų komandos „git worktree“ argumentų įvedimo palaikymas, leidžiantis dirbti su keliomis darbinėmis saugyklos kopijomis.
  • Pridėtas palaikymas ryškioms spalvoms, turinčioms ANSI pabėgimo sekas. Pavyzdžiui, paryškintų spalvų nustatymuose „git config –color“ arba „git diff –color-moved“ galite nurodyti „%C(brightblue)“ naudodami parinktį „--format“, skirtą ryškiai mėlynai.
  • Pridėta nauja scenarijaus versija fsmonitor-watchman, užtikrinanti integraciją su mechanizmu „Facebook“ budėtojas pagreitinti failų pakeitimų stebėjimą ir naujų failų atsiradimą. Atnaujinus reikia git pakeisti kablys saugykloje.
  • Pridėtas optimizavimas, siekiant paspartinti dalinius klonavimus naudojant bitmaps
    (bitmap mašina), kad būtų išvengta visiškos visų objektų paieškos filtruojant išvestį. Dalinio klonavimo metu tikrinama, ar nėra blobų (—filter=blob:none ir —filter=blob:limit=n).
    žymiai greičiau. „GitHub“ paskelbė pataisas su šiais optimizavimais ir eksperimentiniu dalinio klonavimo palaikymu.

  • Komanda „git rebase“ buvo perkelta į kitą pagrindinę programą, naudojant numatytąjį „sujungimo“ mechanizmą (anksčiau naudotą „rebase -i“), o ne „patch+apply“. Užpakalinės programos šiek tiek skiriasi, pavyzdžiui, tęsus operaciją išsprendus konfliktą (git rebase --continue), naujoji backend siūlo redaguoti commit pranešimą, o senoji tiesiog panaudojo senąjį pranešimą. Norėdami grąžinti seną veikimą, galite naudoti parinktį „--apply“ arba konfigūracijos kintamąjį „rebase.backend“ nustatyti į „apply“.
  • Autentifikavimo parametrų, nurodytų per .netrc, tvarkyklės pavyzdys buvo sumažintas iki formos, tinkamos naudoti iš karto.
  • Pridėtas parametras gpg.minTrustLevel, kad būtų nustatytas minimalus įvairių elementų, atliekančių skaitmeninio parašo tikrinimo, pasitikėjimo lygis.
  • Prie „git rm“ ir „git stash“ pridėta parinktis „--pathspec-from-file“.
  • Bandymų rinkinių tobulinimas buvo tęsiamas ruošiantis pereiti prie SHA-2 maišos algoritmo, o ne SHA-1.

Šaltinis: opennet.ru

Добавить комментарий