Rhyddhau system rheoli ffynhonnell ddosbarthedig Git 2.26

Ar gael rhyddhau system rheoli ffynhonnell ddosbarthedig Git 2.26.0. Git yw un o'r systemau rheoli fersiynau mwyaf poblogaidd, dibynadwy a pherfformiad uchel, gan ddarparu offer datblygu aflinol hyblyg yn seiliedig ar ganghennu ac uno. Er mwyn sicrhau cywirdeb yr hanes a gwrthwynebiad i newidiadau ôl-weithredol, defnyddir stwnsh ymhlyg o'r holl hanes blaenorol ym mhob ymrwymiad; mae hefyd yn bosibl ardystio tagiau unigol ac ymrwymo gyda llofnodion digidol y datblygwyr.

O'i gymharu â'r datganiad blaenorol, roedd y fersiwn newydd yn cynnwys 504 o newidiadau, a baratowyd gyda chyfranogiad 64 o ddatblygwyr, a chymerodd 12 ran mewn datblygiad am y tro cyntaf. Y prif arloesiadau:

  • Mae'r rhagosodiad wedi'i newid i ail fersiwn Protocol cyfathrebu Git, a ddefnyddir pan fydd cleient yn cysylltu o bell â gweinydd Git. Mae ail fersiwn y protocol yn nodedig am ddarparu'r gallu i hidlo canghennau a thagiau ar ochr y gweinydd, gan ddychwelyd rhestr fyrrach o ddolenni i'r cleient. Yn flaenorol, byddai unrhyw orchymyn tynnu bob amser yn anfon y rhestr lawn o gyfeiriadau at y cleient yn yr ystorfa gyfan, hyd yn oed pan oedd y cleient yn diweddaru un gangen yn unig neu'n gwirio bod eu copi o'r ystorfa yn gyfredol. Arloesedd nodedig arall yw'r gallu i ychwanegu galluoedd newydd at y protocol wrth i swyddogaethau newydd ddod ar gael yn y pecyn cymorth. Mae'r cod cleient yn parhau i fod yn gydnaws â'r hen brotocol a gall barhau i weithio gyda gweinyddwyr hen a newydd, gan ddisgyn yn awtomatig yn ôl i'r fersiwn gyntaf os nad yw'r gweinydd yn cefnogi'r ail.
  • Mae'r opsiwn “-show-scope” wedi'i ychwanegu at y gorchymyn “git config”, gan ei gwneud hi'n haws nodi'r man lle mae rhai gosodiadau wedi'u diffinio. Mae Git yn caniatáu ichi ddiffinio gosodiadau mewn gwahanol leoedd: yn yr ystorfa (.git/info/config), yn y cyfeiriadur defnyddiwr (~/.gitconfig), yn y ffeil ffurfweddu system gyfan (/etc/gitconfig), a thrwy orchymyn opsiynau llinell a newidynnau amgylchedd. Wrth weithredu “git config” mae'n eithaf anodd deall ble yn union y diffinnir y gosodiad a ddymunir. I ddatrys y broblem hon, roedd yr opsiwn "--show-origin" ar gael, ond dim ond y llwybr i'r ffeil y mae'r gosodiad wedi'i ddiffinio ynddi y mae'n ei ddangos, sy'n ddefnyddiol os ydych chi'n bwriadu golygu'r ffeil, ond nid yw'n helpu os ydych chi angen newid y gwerth trwy "git config" gan ddefnyddio opsiynau "--system", "--global" neu "-local". Mae'r opsiwn newydd "--show-scope" yn dangos y cyd-destun diffiniad amrywiol a gellir ei ddefnyddio ar y cyd â -show-origin:

    $git --list --show-scope --show-origin
    ffeil byd-eang:/home/user/.gitconfig diff.interhunkcontext=1
    ffeil byd-eang:/home/user/.gitconfig push.default=current
    […] ffeil leol:.git/config branch.master.remote=origin
    ffeil leol:.git/config branch.master.merge=refs/heads/master

    $git config --show-scope --get-regexp 'diff.*'
    byd-eang diff.statgraphwidth 35
    lleol diff.colormoved plaen

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

  • Yn y gosodiadau rhwymo cymwysterau Caniateir defnyddio masgiau mewn URLs. Gellir gosod unrhyw osodiadau HTTP a chymwysterau yn Git ar gyfer pob cysylltiad (http.extraHeader, credential.helper) ac ar gyfer cysylltiadau seiliedig ar URL (credential.https://example.com.helper, credential.https: //example. com.helper). Hyd yn hyn, dim ond ar gyfer gosodiadau HTTP y caniatawyd cardiau gwyllt fel *.example.com, ond ni chawsant eu cefnogi ar gyfer rhwymo credadwy. Yn Git 2.26, mae'r gwahaniaethau hyn yn cael eu dileu ac, er enghraifft, i rwymo enw defnyddiwr i bob is-barth gallwch nawr nodi:

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

    enw defnyddiwr = taylorr

  • Mae ehangu cefnogaeth arbrofol ar gyfer clonio rhannol (clonau rhannol) yn parhau, sy'n eich galluogi i drosglwyddo rhan o'r data yn unig a gweithio gyda chopi anghyflawn o'r ystorfa. Mae'r datganiad newydd yn ychwanegu gorchymyn newydd "git sparse-checkout add", sy'n eich galluogi i ychwanegu cyfeirlyfrau unigol i gymhwyso'r gweithrediad "checkout" i ran o'r goeden weithio yn unig, yn lle rhestru pob cyfeiriadur o'r fath ar unwaith trwy'r gorchymyn "git set checkout denau" (gallwch ychwanegu cyfeiriadur fesul un, heb ail-nodi'r rhestr gyfan bob tro).
    Er enghraifft, i glonio ystorfa git/git heb ymrwymo smotiau, gan gyfyngu ar y ddesg dalu i gyfeiriadur gwraidd y copi gweithio yn unig, a marcio til ar wahân ar gyfer y cyfeiriaduron "t" a "Dogfennaeth", fe allech chi nodi:

    $ git clôn --filter=blob: dim --denau [e-bost wedi'i warchod]:git/git.git

    $cd git
    $git prin-checkout init --cone

    $git denau-checkout ychwanegu t
    ....
    $ git sparse-checkout ychwanegu Dogfennaeth
    ....
    $git denau-rhestr siec
    dogfennaeth
    t

  • Mae perfformiad y gorchymyn “git grep”, a ddefnyddir i chwilio cynnwys cyfredol yr ystorfa a diwygiadau hanesyddol, wedi gwella'n sylweddol. Er mwyn cyflymu’r chwilio, bu’n bosibl sganio cynnwys y goeden waith gan ddefnyddio edafedd lluosog (“git grep –threads”), ond roedd y chwiliad mewn diwygiadau hanesyddol yn un edau. Nawr mae'r cyfyngiad hwn wedi'i ddileu trwy weithredu'r gallu i gyfochrog â gweithrediadau darllen o'r storfa wrthrychau. Yn ddiofyn, mae nifer yr edafedd wedi'i osod yn hafal i nifer y creiddiau CPU, nad oes angen gosod yr opsiwn "-threads" yn benodol yn y rhan fwyaf o achosion.
  • Ychwanegwyd cefnogaeth ar gyfer awtolenwi mewnbwn is-orchmynion, llwybrau, dolenni a dadleuon eraill o'r gorchymyn “git worktree”, sy'n eich galluogi i weithio gyda sawl copi gweithredol o'r ystorfa.
  • Cefnogaeth ychwanegol ar gyfer lliwiau llachar sydd â dilyniannau dianc ANSI. Er enghraifft, yn y gosodiadau ar gyfer lliwiau amlygu “git config –color” neu “git diff –color-moved” gallwch chi nodi “% C(brightblue)” trwy'r opsiwn “--format” ar gyfer glas llachar.
  • Ychwanegwyd fersiwn newydd o'r sgript fsmonitor-watchman, gan ddarparu integreiddio â'r mecanwaith Gwyliwr Facebook i gyflymu'r broses o olrhain newidiadau ffeil ac ymddangosiad ffeiliau newydd. Ar ôl diweddaru git yn ofynnol disodli bachyn yn yr ystorfa.
  • Ychwanegwyd optimeiddiadau i gyflymu clonau rhannol wrth ddefnyddio mapiau didau
    (peiriannau didfap) i osgoi chwiliad cyflawn o'r holl wrthrychau wrth hidlo'r allbwn. Mae gwirio am smotiau ( —filter=blob: dim a —filter=blob:limit=n) yn ystod clonio rhannol bellach yn cael ei berfformio
    yn sylweddol gyflymach. Cyhoeddodd GitHub glytiau gyda'r optimeiddiadau hyn a chefnogaeth arbrofol ar gyfer clonio rhannol.

  • Mae'r gorchymyn "git rebase" wedi'i symud i gefnlen wahanol, gan ddefnyddio'r mecanwaith 'uno' rhagosodedig (a ddefnyddiwyd yn flaenorol ar gyfer "rebase -i") yn lle 'patch+apply'. Mae'r backends yn wahanol mewn rhai ffyrdd bach, er enghraifft, ar ôl parhau â gweithrediad ar ôl datrys gwrthdaro (git rebase --continue), mae'r ôl-ôl newydd yn cynnig golygu'r neges ymrwymo, tra bod yr hen un yn syml yn defnyddio'r hen neges. I ddychwelyd i'r hen ymddygiad, gallwch ddefnyddio'r opsiwn "--apply" neu osod y newidyn cyfluniad 'rebase.backend' i 'gwneud cais'.
  • Mae enghraifft o driniwr ar gyfer paramedrau dilysu a nodir trwy .netrc wedi'i leihau i ffurf sy'n addas i'w ddefnyddio allan o'r blwch.
  • Ychwanegwyd y gosodiad gpg.minTrustLevel i osod y lefel ymddiriedaeth isaf ar gyfer gwahanol elfennau sy'n cyflawni dilysu llofnod digidol.
  • Ychwanegwyd opsiwn "--pathspec-from-file" i "git rm" a "git stash".
  • Parhawyd i wella ystafelloedd prawf wrth baratoi ar gyfer y newid i algorithm stwnsio SHA-2 yn lle SHA-1.

Ffynhonnell: opennet.ru

Ychwanegu sylw