Kutolewa kwa mfumo wa udhibiti wa chanzo uliosambazwa Git 2.25

Inapatikana kutolewa kwa mfumo wa udhibiti wa chanzo uliosambazwa Git 2.25.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 583, yaliyotayarishwa na ushiriki wa watengenezaji 84, ambao 32 walishiriki katika maendeleo kwa mara ya kwanza. kuu ubunifu:

  • Uwezekano wa cloning ya sehemu inakaribia uimarishaji na utayari kamili, kukuwezesha kuhamisha sehemu tu ya data na kufanya kazi na nakala isiyo kamili ya hifadhi. Klani ya kawaida hunakili data yote kutoka kwa hazina, ikijumuisha kila toleo la kila faili kwenye historia ya mabadiliko. Kwa hazina kubwa sana, kunakili data husababisha ongezeko kubwa la trafiki na nafasi ya diski, hata kama msanidi anavutiwa tu na kikundi kidogo cha faili. Ili kurahisisha kupata sehemu tu ya mti chanzo kinachofanya kazi, toleo jipya linatanguliza amri ya majaribio ya "sparse-checkout" na chaguo jipya la "--sparse" kwa amri ya "clone".

    Hapo awali, mchakato wa cloning wa kuchagua ulifanyika kupitia kazi hiyo vichungi kuchuja maudhui yasiyo ya lazima na chaguo la "-no-checkout" ili kuzima ujazaji wa faili zinazokosekana. Baada ya hapo, kabla ya kutekeleza utendakazi wa kulipa, ilikuwa muhimu kuwezesha mpangilio wa core.sparseCheckout na kufafanua orodha ya mifumo ya njia isiyojumuishwa katika faili ya .git/info/sparse-checkout. Kwa mfano, kuiga bila matone na kuzuia faili kutolewa kutoka kwa saraka ndogo za kina 2 au zaidi, unaweza kukimbia:

    git clone --filter=blob:none --no-checkout /your/repository/here repo
    $ cd repo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git malipo.

    Amri mpya ya "git sparse-checkout" hurahisisha kazi sana na inapunguza mchakato wa kupanga kazi na hazina isiyokamilika kwa amri zifuatazo:

    git clone --filter=blob:none --sparse /your/repository/here repo
    git sparse-checkout set /path/to/check/out

    Amri ya malipo ya sparse-checkout hukuruhusu kuweka orodha ya njia za kulipia (kuweka) bila kusanidi mwenyewe .git/info/sparse-checkout, na pia kuonyesha orodha ya sasa ya njia (orodha) na kuwezesha au kuzima malipo ya sehemu (wezesha /lemaza).

    Ili kuboresha kazi na hazina kubwa sana na orodha za violezo, "git config core.sparseCheckoutCone", ambayo huweka kikomo ruwaza zinazoruhusiwa (badala ya ruwaza za .gitignore kiholela, unaweza kubainisha kama njia zote na faili zote katika saraka fulani zinapaswa kuangaliwa). Kwa mfano, ikiwa hazina kubwa ina saraka "A/B/C" na kazi yote imejilimbikizia katika orodha ndogo "C", basi unapowezesha hali ya sparseCheckoutCone, amri "git sparse-checkout set A/B/ C" itatoa maudhui yote ya "C", lakini kutoka "A" na "B" itatoa tu sehemu muhimu za kufanya kazi na "C".

  • Kutoka kwa hati ("git rebase -h"), marejeleo yote ya chaguo la "--preserve-merge" yameondolewa, ambayo yameacha kutumika na yanapaswa kutumika badala yake kuhamisha seti ya ahadi.git rebase --rebase-meges".
  • Ili kuboresha usomaji wa ujumbe wenye viraka vilivyotumwa kwa orodha za wanaotuma barua, chaguo la "git format-patch -cover-from-description subject" limeongezwa, inapobainishwa, aya ya kwanza kutoka kwa maandishi ya maelezo ya tawi inatumika kama mada ya barua ya jalada kwa seti ya viraka.
  • Usaidizi uliotekelezwa wa matumizi ya pamoja ya amri ya β€œgit apply -3way” na mpangilio wa β€œmerge.conflictStyle” (β€œgit apply” sasa inazingatia mtindo wa maelezo ya mzozo kutoka merge.conflictStyle inapohitajika kutatua mzozo baada ya kujaribu. kutumia faili ya kiraka kwenye hazina).
  • Nambari ya ufafanuzi wa utendakazi inayotumika katika shughuli kama vile "git diff/grep --show-function/-function-context" imepanuliwa ili kusaidia kufafanua mipaka ya utendakazi katika programu za lugha. Elixir.
  • Chaguo jipya limeongezwa kwa "git add", "git commit", "git reset" na amri zingine - "-pathspec-from-file", ambayo inafanya uwezekano wa kupakia orodha ya njia kutoka kwa faili au mkondo wa kuingiza. , badala ya kuziorodhesha kwenye safu ya amri.
  • Shida ya kugundua majina katika kiwango cha saraka wakati wa kuandika ahadi imetatuliwa. Ufafanuzi haukufanya kazi ikiwa yaliyomo kwenye saraka ndogo yalihamishwa hadi mzizi wa hazina.
  • Utekelezaji wa awali wa amri iliyoundwa upya ya "git add -i" imependekezwa, kukuruhusu kuongeza maudhui yaliyobadilishwa kwa maingiliano, yaliyoandikwa upya kutoka Perl hadi C. Urekebishaji sawa wa amri ya "git add -p" unaendelea.
  • Amri ya "git log -graph" imebadilishwa tena, ikitoa picha ya ASCII ya grafu yenye historia ya mabadiliko kwenye hifadhi. Rework ilifanya iwezekanavyo kuboresha kwa kiasi kikubwa na kurahisisha pato bila kupotosha muundo wa hadithi, ambayo, kwa mfano, ilitatua tatizo na picha inayoenea zaidi ya upana wa mstari wa mwisho.
  • Chaguo la "git log --format=.." hukuruhusu kubadilisha umbizo la pato,
    kupanuliwa kwa kutumia alama za β€œl/L” ili kuonyesha sehemu tu ya anwani ya barua pepe iliyoonyeshwa kabla ya alama ya β€œ@” (kwa mfano, ni muhimu wakati wasanidi programu wote wana barua pepe zote kwenye kikoa kimoja).

  • Imeongeza amri ndogo ya "set-url" kwa amri ya "git submodule".
  • Vifaa vya majaribio vimesasishwa ili kujiandaa kwa mpito wa
    algorithm ya hashing SHA-2 badala ya SHA-1.

Chanzo: opennet.ru

Kuongeza maoni