Kutolewa kwa mfumo wa udhibiti wa chanzo uliosambazwa Git 2.26

Inapatikana kutolewa kwa mfumo wa udhibiti wa chanzo uliosambazwa Git 2.26.0. Git ni mojawapo ya mifumo maarufu zaidi, inayotegemewa na yenye utendakazi wa hali ya juu ya udhibiti wa toleo, ikitoa zana rahisi za ukuzaji zisizo za mstari kulingana na matawi na kuunganisha. Ili kuhakikisha uadilifu wa historia na upinzani dhidi ya mabadiliko yanayorudiwa nyuma, hashing isiyofichika ya historia nzima ya awali inatumika katika kila ahadi; inawezekana pia kuthibitisha lebo za mtu binafsi na ahadi kwa saini za dijiti za wasanidi programu.

Ikilinganishwa na toleo la awali, toleo jipya lilijumuisha mabadiliko 504, yaliyotayarishwa na ushiriki wa watengenezaji 64, ambao 12 walishiriki katika maendeleo kwa mara ya kwanza. kuu ubunifu:

  • Chaguo-msingi imebadilishwa hadi toleo la pili Itifaki ya mawasiliano ya Git, ambayo hutumiwa wakati mteja anaunganisha kwa seva ya Git. Toleo la pili la itifaki linajulikana kwa kutoa uwezo wa kuchuja matawi na vitambulisho kwenye upande wa seva, kurudisha orodha fupi ya viungo kwa mteja. Hapo awali, amri yoyote ya kuvuta ingeweza kutuma mteja kila wakati orodha kamili ya marejeleo kwenye hazina nzima, hata wakati mteja alikuwa akisasisha tawi moja tu au kuangalia kwamba nakala yao ya hazina ilikuwa ya kisasa. Ubunifu mwingine mashuhuri ni uwezo wa kuongeza uwezo mpya kwenye itifaki kadiri utendakazi mpya unavyopatikana kwenye kisanduku cha zana. Msimbo wa mteja unasalia sambamba na itifaki ya zamani na inaweza kuendelea kufanya kazi na seva mpya na za zamani, ikirejea kiotomatiki kwenye toleo la kwanza ikiwa seva haitumii toleo la pili.
  • Chaguo la "-show-scope" limeongezwa kwa amri ya "git config", na kuifanya iwe rahisi kutambua mahali ambapo mipangilio fulani imefafanuliwa. Git hukuruhusu kufafanua mipangilio katika sehemu tofauti: kwenye hazina (.git/info/config), kwenye saraka ya mtumiaji (~/.gitconfig), katika faili ya usanidi wa mfumo mzima (/etc/gitconfig), na kupitia amri. chaguzi za mstari na vigezo vya mazingira. Wakati wa kutekeleza "git config" ni ngumu sana kuelewa ni wapi mpangilio unaohitajika unafafanuliwa. Ili kutatua tatizo hili, chaguo la "--show-origin" lilipatikana, lakini linaonyesha tu njia ya faili ambayo mpangilio umefafanuliwa, ambayo ni muhimu ikiwa una nia ya kuhariri faili, lakini haisaidii ikiwa haja ya kubadilisha thamani kupitia "git config" kwa kutumia chaguzi "--system", "-global" au "-local". Chaguo jipya "--show-scope" linaonyesha muktadha wa ufafanuzi tofauti na linaweza kutumika kwa kushirikiana na -show-origin:

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

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

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

  • Katika mipangilio ya kufunga sifa Matumizi ya barakoa katika URL yanaruhusiwa. Mipangilio na vitambulisho vyovyote vya HTTP katika Git vinaweza kuwekwa kwa miunganisho yote (http.extraHeader, credential.helper) na kwa miunganisho inayotegemea URL (kitambulisho.https://example.com.helper, kitambulisho.https: //example. com.msaidizi). Hadi sasa, kadi-mwitu kama vile *.example.com ziliruhusiwa kwa mipangilio ya HTTP pekee, lakini hazikuauniwi kwa ufungaji wa hati tambulishi. Katika Git 2.26, tofauti hizi huondolewa na, kwa mfano, kufunga jina la mtumiaji kwa vikoa vyote sasa unaweza kutaja:

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

    jina la mtumiaji = ttaylorr

  • Upanuzi wa usaidizi wa majaribio kwa uundaji wa sehemu (cloni za sehemu) unaendelea, hukuruhusu kuhamisha sehemu tu ya data na kufanya kazi na nakala isiyo kamili ya hazina. Toleo jipya linaongeza amri mpya "git sparse-checkout add", ambayo hukuruhusu kuongeza saraka za kibinafsi ili kutumia operesheni ya "checkout" kwa sehemu tu ya mti unaofanya kazi, badala ya kuorodhesha saraka zote kama hizo mara moja kupitia amri "git". sparse-checkout set" (unaweza kuongeza saraka moja baada ya nyingine, bila kutaja tena orodha nzima kila wakati).
    Kwa mfano, kuunda hazina ya git/git bila kuweka matone, kuweka kikomo cha malipo kwa saraka ya mizizi ya nakala inayofanya kazi, na kuweka alama kando ya malipo ya saraka za "t" na "Nyaraka", unaweza kubainisha:

    $ git clone --filter=blob:none --sparse [barua pepe inalindwa]:git/git.git

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

    $ git sparse-checkout ongeza t
    ....
    $ git sparse-checkout ongeza Hati
    ....
    $ git orodha ya malipo ya sparse
    nyaraka
    t

  • Utendaji wa amri ya "git grep", inayotumiwa kutafuta yaliyomo sasa ya hazina na masahihisho ya kihistoria, umeboreshwa kwa kiasi kikubwa. Ili kuharakisha utafutaji, iliwezekana kuchunguza yaliyomo kwenye mti unaofanya kazi kwa kutumia nyuzi nyingi ("git grep -threads"), lakini utafutaji katika marekebisho ya kihistoria ulikuwa wa thread moja. Sasa kizuizi hiki kimeondolewa kwa kutekeleza uwezo wa kusawazisha shughuli za kusoma kutoka kwa hifadhi ya kitu. Kwa chaguo-msingi, idadi ya threads imewekwa sawa na idadi ya cores CPU, ambayo katika hali nyingi sasa hauhitaji kuweka kwa uwazi chaguo "-threads".
  • Msaada ulioongezwa wa kukamilisha kiotomatiki kwa amri ndogo, njia, viungo na hoja zingine za amri ya "git worktree", ambayo hukuruhusu kufanya kazi na nakala kadhaa za kumbukumbu.
  • Usaidizi umeongezwa kwa rangi angavu ambazo zina mfuatano wa ANSI wa kutoroka. Kwa mfano, katika mipangilio ya rangi zinazoangazia "git config -color" au "git diff -color-moved" unaweza kubainisha "%C(brightblue)" kupitia chaguo la "--format" la bluu angavu.
  • Imeongeza toleo jipya la hati fsmonitor-mlinzi, kutoa ushirikiano na utaratibu Facebook Watchman ili kuharakisha ufuatiliaji wa mabadiliko ya faili na kuonekana kwa faili mpya. Baada ya kusasisha git inahitajika badala ndoano kwenye hazina.
  • Imeongeza uboreshaji ili kuharakisha clones nusu wakati wa kutumia bitmaps
    (mashine ya bitmap) ili kuzuia utaftaji kamili wa vitu vyote wakati wa kuchuja pato. Kukagua vitone (-filter=blob:none na -filter=blob:limit=n) wakati wa uundaji wa sehemu ya cloning sasa kumefanywa.
    kwa kasi kwa kiasi kikubwa. GitHub ilitangaza viraka kwa uboreshaji huu na usaidizi wa majaribio kwa uundaji wa sehemu.

  • Amri ya "git rebase" imehamishwa hadi kwenye mazingira tofauti, kwa kutumia utaratibu chaguo-msingi wa 'unganisha' (uliotumika hapo awali kwa "rebase -i") badala ya 'kiraka+apply'. Njia za nyuma hutofautiana kwa njia ndogo, kwa mfano, baada ya kuendelea na operesheni baada ya kusuluhisha mzozo (git rebase --continue), sehemu mpya ya nyuma inatoa kuhariri ujumbe wa ahadi, wakati ule wa zamani ulitumia tu ujumbe wa zamani. Ili kurejea tabia ya zamani, unaweza kutumia chaguo la "--apply" au kuweka kigezo cha usanidi cha 'rebase.backend' ili 'kutumia'.
  • Mfano wa kidhibiti cha vigezo vya uthibitishaji vilivyobainishwa kupitia .netrc umepunguzwa hadi fomu inayofaa kutumika nje ya kisanduku.
  • Imeongeza mpangilio wa gpg.minTrustLevel ili kuweka kiwango cha chini cha uaminifu kwa vipengele mbalimbali vinavyotekeleza uthibitishaji wa sahihi za kidijitali.
  • Imeongeza chaguo la "--pathspec-from-file" hadi "git rm" na "git stash".
  • Uboreshaji wa vyumba vya majaribio uliendelea katika maandalizi ya mpito kwa algoriti ya hashing ya SHA-2 badala ya SHA-1.

Chanzo: opennet.ru

Kuongeza maoni