Útgáfa dreifðu upprunastýringarkerfisins Git 2.26

Laus losun dreifðs heimildastýringarkerfis git 2.26.0. Git er eitt vinsælasta, áreiðanlegasta og afkastamesta útgáfustýringarkerfið, sem býður upp á sveigjanleg ólínuleg þróunarverkfæri sem byggjast á greiningu og sameiningu. Til að tryggja heilleika sögunnar og mótstöðu gegn afturvirkum breytingum, er óbein hashing á allri fyrri sögu notað í hverri skuldbindingu; það er líka hægt að votta einstök merki og skuldbindingar með stafrænum undirskriftum þróunaraðila.

Í samanburði við fyrri útgáfu innihélt nýja útgáfan 504 breytingar, unnar með þátttöku 64 þróunaraðila, þar af 12 sem tóku þátt í þróun í fyrsta skipti. Helstu nýjungar:

  • Sjálfgefið hefur verið skipt yfir í önnur útgáfa Git samskiptareglur, sem er notuð þegar viðskiptavinur fjartengingar við Git netþjón. Önnur útgáfan af samskiptareglunum er áberandi fyrir að veita getu til að sía útibú og merki á miðlarahliðinni og skila styttum lista yfir tengla á viðskiptavininn. Áður fyrr myndi hvaða pull skipun alltaf senda viðskiptavininum allan tilvísunarlistann í allri geymslunni, jafnvel þegar viðskiptavinurinn var aðeins að uppfæra eina útibú eða athuga hvort eintak hans af geymslunni væri uppfært. Önnur athyglisverð nýjung er hæfileikinn til að bæta nýjum möguleikum við samskiptareglurnar þegar ný virkni verður fáanleg í verkfærakistunni. Biðlarakóði er áfram samhæfður gömlu samskiptareglunum og getur haldið áfram að vinna með bæði nýjum og gömlum netþjónum og fellur sjálfkrafa aftur í fyrstu útgáfuna ef þjónninn styður ekki þá seinni.
  • „-show-scope“ valkostinum hefur verið bætt við „git config“ skipunina, sem gerir það auðveldara að bera kennsl á staðinn þar sem ákveðnar stillingar eru skilgreindar. Git gerir þér kleift að skilgreina stillingar á mismunandi stöðum: í geymslunni (.git/info/config), í notendaskránni (~/.gitconfig), í kerfisuppsetningarskránni (/etc/gitconfig) og í gegnum skipunina línuvalkostir og umhverfisbreytur. Þegar „git config“ er keyrt er frekar erfitt að skilja hvar nákvæmlega viðkomandi stilling er skilgreind. Til að leysa þetta vandamál var „--show-origin“ valmöguleikinn í boði, en hann sýnir aðeins slóðina að skránni sem stillingin er skilgreind í, sem er gagnlegt ef þú ætlar að breyta skránni, en hjálpar ekki ef þú þarf að breyta gildinu í gegnum "git config" með því að nota valkostina "--system", "--global" eða "-local". Nýi valmöguleikinn "--show-scope" sýnir breytuskilgreiningarsamhengið og hægt er að nota það í tengslum við -show-origin:

    $ git --list --show-scope --show-origin
    alþjóðleg skrá:/home/user/.gitconfig diff.interhunkcontext=1
    alþjóðleg skrá:/home/user/.gitconfig push.default=núverandi
    […] staðbundin skrá:.git/config branch.master.remote=uppruni
    staðbundin skrá:.git/config branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    alþjóðleg diff.statgraphwidth 35
    staðbundin diff.colormoved sléttur

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

  • Í bindingarstillingum skilríki Heimilt er að nota grímur í vefslóðum. Allar HTTP stillingar og skilríki í Git er hægt að stilla bæði fyrir allar tengingar (http.extraHeader, credential.helper) og fyrir tengingar sem byggja á vefslóðum (credential.https://example.com.helper, credential.https: //example. com.helper). Hingað til voru jokertákn eins og *.example.com aðeins leyfð fyrir HTTP stillingar, en voru ekki studd fyrir skilríkisbindingu. Í Git 2.26 er þessum mismun eytt og til dæmis til að binda notandanafn við öll undirlén geturðu nú tilgreint:

    [skilríki „https://*.example.com“]

    notendanafn = ttaylorr

  • Stækkun tilraunastuðnings við klónun að hluta (klón að hluta) heldur áfram, sem gerir þér kleift að flytja aðeins hluta gagnanna og vinna með ófullnægjandi afrit af geymslunni. Nýja útgáfan bætir við nýrri skipun "git sparse-checkout add", sem gerir þér kleift að bæta við einstökum möppum til að beita "checkout" aðgerðinni á aðeins hluta vinnutrésins, í stað þess að skrá allar slíkar möppur í einu í gegnum skipunina "git sparse-checkout set" (þú getur bætt einni og einni möppu við, án þess að tilgreina allan listann aftur í hvert skipti).
    Til dæmis, til að klóna git/git geymslu án þess að hleypa út kubbum, takmarka útskráningu við aðeins rótarskrá vinnuafritsins og merkja sérstaklega útskrá fyrir „t“ og „Documentation“ möppurnar, gætirðu tilgreint:

    $ git klón --filter=blob:none --spars [netvarið]:git/git.git

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

    $ git sparse-checkout bæta við t
    ....
    $ git sparse-checkout bæta við skjölum
    ....
    $ git sparse-checkout listi
    Documentation
    t

  • Frammistaða „git grep“ skipunarinnar, notuð til að leita bæði í núverandi innihaldi geymslunnar og sögulegum endurskoðunum, hefur verið verulega bætt. Til að flýta fyrir leitinni var hægt að skanna innihald vinnutrésins með því að nota marga þræði ("git grep -threads"), en leitin í sögulegum endurskoðunum var einþráður. Nú hefur þessi takmörkun verið fjarlægð með því að innleiða hæfileikann til að samsíða lestraraðgerðum úr hlutgeymslunni. Sjálfgefið er að fjöldi þráða er stilltur jafn og fjölda örgjörvakjarna, sem í flestum tilfellum þarf nú ekki að stilla „-þræði“ valmöguleikann sérstaklega.
  • Bætti við stuðningi við sjálfvirka útfyllingu inntaks undirskipana, slóða, tengla og annarra röksemda „git worktree“ skipunarinnar, sem gerir þér kleift að vinna með nokkur vinnuafrit af geymslunni.
  • Bætti við stuðningi við bjarta liti sem hafa ANSI flóttaröð. Til dæmis, í stillingum fyrir hápunktsliti „git config –color“ eða „git diff –color-moved“ geturðu tilgreint „%C(brightblue)“ með „--format“ valkostinum fyrir skærblátt.
  • Bætt við nýrri útgáfu af handriti fsmonitor-vaktmaður, sem veitir samþættingu við vélbúnaðinn Facebook Watchman til að flýta fyrir rekstri skráabreytinga og útliti nýrra skráa. Eftir uppfærslu er git krafist skipta um krók í geymsluna.
  • Bætt við hagræðingu til að flýta fyrir klónum að hluta þegar punktamyndir eru notaðar
    (bitamyndavélar) til að forðast fullkomna leit á öllum hlutum þegar úttakið er síað. Athugun á kubbum (—filter=blob:none og —filter=blob:limit=n) við klónun að hluta er nú framkvæmd
    verulega hraðar. GitHub tilkynnti plástra með þessum fínstillingum og tilraunastuðningi við klónun að hluta.

  • „git rebase“ skipunin hefur verið færð yfir í annan bakenda, með því að nota sjálfgefna „merge“ vélbúnaðinn (áður notað fyrir „rebase -i“) í stað „patch+apply“. Bakendarnir eru frábrugðnir á nokkrum litlum vegu, til dæmis, eftir að hafa haldið áfram aðgerð eftir að hafa leyst átök (git rebase --continue), býður nýja bakendinn upp á að breyta commit skilaboðunum, á meðan sá gamli notaði einfaldlega gömlu skilaboðin. Til að fara aftur í gamla hegðun geturðu notað „--apply“ valmöguleikann eða stillt „rebase.backend“ stillingarbreytuna á „apply“.
  • Dæmi um meðhöndlun fyrir auðkenningarfæribreytur sem tilgreindar eru með .netrc hefur verið minnkað í form sem hentar til notkunar utan kassans.
  • Bætti við gpg.minTrustLevel stillingunni til að stilla lágmarkstraustsstig fyrir ýmsa þætti sem framkvæma stafræna undirskriftarstaðfestingu.
  • Bætti "--pathspec-from-file" valkostinum við "git rm" og "git stash".
  • Endurbætur á prófunarsvítum héldu áfram í undirbúningi fyrir umskipti yfir í SHA-2 kjötkássa reiknirit í stað SHA-1.

Heimild: opennet.ru

Bæta við athugasemd