Ukukhishwa kwesistimu yokulawula umthombo esabalalisiwe i-Git 2.26

Iyatholakala ukukhululwa kwesistimu yokulawula umthombo esabalalisiwe I-Git 2.26.0. I-Git ingenye yezinhlelo ezidume kakhulu, ezinokwethenjelwa nezisebenza kahle kakhulu zokulawula inguqulo, ehlinzeka ngamathuluzi okuthuthukisa aguquguqukayo angaqondile asekelwe ku-branching nokuhlanganisa. Ukuqinisekisa ubuqotho bomlando kanye nokumelana nezinguquko ze-retroactive, i-hashing engacacile yawo wonke umlando wangaphambilini isetshenziswa ekuzinikeleni ngakunye; kuyenzeka futhi ukuqinisekisa amathegi angawodwana kanye nokuzibophezela ngamasiginesha edijithali yonjiniyela.

Uma kuqhathaniswa nokukhululwa kwangaphambilini, inguqulo entsha yayihlanganisa izinguquko ezingu-504, ezilungiselelwe ngokubamba iqhaza kwabathuthukisi abangu-64, abangu-12 babo babambe iqhaza ekuthuthukisweni okokuqala. main emisha:

  • Okuzenzakalelayo kushintshelwe kukho inguqulo yesibili Iphrothokholi yokuxhumana ye-Git, esetshenziswa lapho iklayenti lixhuma ukude kuseva ye-Git. Inguqulo yesibili yephrothokholi iphawuleka ngokunikeza ikhono lokuhlunga amagatsha nomaka ohlangothini lweseva, ukubuyisela uhlu olufushane lwezixhumanisi kuklayenti. Ngaphambilini, noma yimuphi umyalo wokudonsa wawuhlala uthumela iklayenti uhlu olugcwele lwezithenjwa kuyo yonke indawo yokugcina, ngisho nalapho iklayenti lalibuyekeza igatsha elilodwa kuphela noma lihlola ukuthi ikhophi yalo yendawo yokugcina lisesikhathini samanje. Okunye okusha okuphawulekayo yikhono lokwengeza amakhono amasha kuphrothokholi njengoba ukusebenza okusha kutholakala kukhithi yamathuluzi. Ikhodi yeklayenti ihlala ihambisana nephrothokholi endala futhi ingaqhubeka nokusebenza ngazo zombili iziphakeli ezintsha nezindala, ngokuzenzakalelayo ibuyela enguqulweni yokuqala uma iseva ingasekeli eyesibili.
  • Inketho ethi “-show-scope” yengezwe emyalweni we-“git config”, okwenza kube lula ukukhomba indawo lapho kuchazwa khona izilungiselelo ezithile. I-Git ikuvumela ukuthi uchaze izilungiselelo ezindaweni ezihlukene: endaweni yokugcina (.git/info/config), kumkhombandlela wabasebenzisi (~/.gitconfig), kufayela lokumisa lesistimu (/etc/gitconfig), nangomyalo izinketho zomugqa kanye neziguquguqukayo zemvelo. Lapho wenza “i-git config” kunzima kakhulu ukuqonda ukuthi ukulungiselelwa okufunayo kuchazwa kuphi. Ukuxazulula le nkinga, inketho ethi “--show-origin” ibitholakala, kodwa ikhombisa kuphela indlela eya efayelini lapho kuchazwa isilungiselelo, eliwusizo uma uhlose ukuhlela ifayela, kodwa akusizi uma udinga ukushintsha inani ngokuthi "git config" usebenzisa izinketho "--system", "-global" noma "-local". Inketho entsha ethi "--show-scope" ibonisa umongo wencazelo eguquguqukayo futhi ingasetshenziswa ngokuhambisana ne -show-origin:

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

    $ git config --show-scope --get-regexp 'diff.*'
    global diff.statgraphwidth 35
    local diff.colormuved plain

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

  • Kuzilungiselelo zokubopha izifakazelo Ukusetshenziswa kwamamaski kuma-URL kuvunyelwe. Noma yiziphi izilungiselelo ze-HTTP neziqinisekiso ku-Git zingasethwa kukho kokubili ukuxhumana (http.extraHeader, credential.helper) kanye noxhumo olusekelwe ku-URL (ubufakazi.https://example.com.helper, credential.https: //example. com.umsizi). Kuze kube manje, ama-wildcards afana ne-*.example.com abevunyelwe kuphela kuzilungiselelo ze-HTTP, kodwa abengasekelwe ekubopheni izifakazelo. Ku-Git 2.26, lo mehluko uyasuswa futhi, ngokwesibonelo, ukuhlanganisa igama lomsebenzisi kuzo zonke izizinda ezingaphansi ongazicacisa manje:

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

    igama lomsebenzisi = ttaylorr

  • Ukunwetshwa kosekelo lokuhlola lokuhlanganisa ingxenye (ama-clones ayingxenye) kuyaqhubeka, okukuvumela ukuthi udlulisele ingxenye kuphela yedatha futhi usebenze ngekhophi engaphelele yendawo yokugcina. Ukukhishwa okusha kungeza umyalo omusha othi "git sparse-checkout add", okuvumela ukuthi ungeze uhla lwemibhalo ngalunye ukuze usebenzise umsebenzi "we-checkout" engxenyeni kuphela yesihlahla esisebenzayo, esikhundleni sokuklelisa zonke lezo mibhalo ngesikhathi esisodwa ngomyalo othi "git". sparse-checkout set" (ungangeza uhla lwemibhalo ngalunye, ngaphandle kokuphinda ucacise uhlu lonke isikhathi ngasinye).
    Isibonelo, ukuhlanganisa ikhosombe le-git/git ngaphandle kokwenza ama-blobs, ukukhawulela ukuphuma kuhlu lwemibhalo oluyimpande kuphela lwekhophi esebenzayo, kanye nokumaka ngokuhlukile ukuphuma kohlu lwemibhalo ethi "t" kanye "Nemibhalo", ungacacisa:

    $ git clone --filter=blob:none --sparse [i-imeyili ivikelwe]:git/git.git

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

    $ git sparse-checkout engeza t
    ....
    $ git sparse-checkout engeza Amadokhumenti
    ....
    $ git sparse-checkout uhlu
    Amadokhumenti
    t

  • Ukusebenza komyalo we-“git grep”, osetshenziselwe ukusesha kokubili okuqukethwe kwamanje kwenqolobane nezibuyekezo zomlando, kuthuthukiswe kakhulu. Ukuze kusheshiswe ukusesha, kwakungenzeka ukuskena okuqukethwe kwesihlahla esisebenzayo usebenzisa izintambo eziningi ("git grep -threads"), kodwa ukusesha kuzibuyekezo zomlando kwakunochungechunge olulodwa. Manje lo mkhawulo ususiwe ngokusebenzisa ikhono lokufanisa ukusebenza kokufunda kusuka endaweni yokugcina into. Ngokuzenzakalelayo, inani lemicu isethwe lilingana nenani lama-CPU cores, okuyinto ezimweni eziningi manje engadingi ukusetha ngokusobala inketho ethi "-threads".
  • Ukwesekwa okwengeziwe kokuqedela ngokuzenzakalela okokufaka kwemiyalelo engaphansi, izindlela, izixhumanisi nezinye izimpikiswano zomyalo we-"git worktree", okuvumela ukuthi usebenze namakhophi ambalwa asebenzayo wendawo yokugcina.
  • Kungezwe usekelo lwemibala egqamile enokulandelana kokuphunyuka kwe-ANSI. Ngokwesibonelo, kuzilungiselelo zemibala egqamile ethi “git config –color” noma “git diff –color-moved” ungacacisa “%C(brightblue)” usebenzisa inketho ethi “--format” yokuluhlaza okwesibhakabhaka okukhanyayo.
  • Kwengezwe inguqulo entsha yeskripthi fsmonitor-umlindi, ukuhlinzeka ngokuhlanganiswa nendlela Facebook Watchman ukusheshisa ukulandelela izinguquko zefayela kanye nokuvela kwamafayela amasha. Ngemuva kokubuyekeza i-git iyadingeka buyisela hook endaweni yokugcina.
  • Kungezwe ukulungiselelwa ukusheshisa ama-clones uma usebenzisa ama-bitmaps
    (imishini ye-bitmap) ukuze ugweme ukusesha okuphelele kwazo zonke izinto lapho uhlungwa okukhiphayo. Ukuhlola ama-blobs (—filter=blob:none kanye -filter=blob:limit=n) phakathi nokuhlanganisa ingxenye manje sekwenziwe.
    ngokushesha okukhulu. I-GitHub imemezele amapeshi ngalokhu kulungiselelwa nokusekelwa kokuhlola kokuhlanganisa ingxenye.

  • Umyalo othi "git rebase" uyiswe endaweni ehlukile, kusetshenziswa indlela ezenzakalelayo 'yokuhlanganisa' (ngaphambilini eyayisetshenziselwa "rebase -i") esikhundleni sokuthi 'patch+apply'. Ama-backends ahluka ngezindlela ezithile ezincane, ngokwesibonelo, ngemuva kokuqhubeka nomsebenzi ngemuva kokuxazulula ukungqubuzana (git rebase --continue), i-backend entsha inikeza ukuhlela umlayezo wokuzibophezela, kuyilapho endala imane isebenzise umlayezo omdala. Ukuze ubuyele ekuziphatheni kwakudala, ungasebenzisa inketho ethi "--apply" noma usethe okuguquguqukayo kokucushwa kwe-'rebase.backend' ukuze 'usebenzise'.
  • Isibonelo sesibambi samapharamitha wokuqinisekisa acaciswe nge-.netrc sehliselwe kufomu elifanele ukusetshenziswa ngaphandle kwebhokisi.
  • Kwengezwe isilungiselelo se-gpg.minTrustLevel ukuze kusethwe izinga elincane lokuthembana lezinto ezihlukahlukene ezenza ukuqinisekiswa kwesiginesha yedijithali.
  • Kwengezwe inketho ethi "--pathspec-from-file" ku-"git rm" kanye "ne-git stash".
  • Ukuthuthukiswa kwamagumbi okuhlola kuqhubekile kulungiselelwa ukushintshela ku-algorithm ye-SHA-2 hashing esikhundleni se-SHA-1.

Source: opennet.ru

Engeza amazwana