Kutolewa kwa mfumo wa udhibiti wa chanzo uliosambazwa Git 2.31

Mfumo wa udhibiti wa chanzo uliosambazwa Git 2.31 sasa unapatikana. 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 679, yaliyotayarishwa na ushiriki wa watengenezaji 85, ambao 23 walishiriki katika maendeleo kwa mara ya kwanza. Ubunifu kuu:

  • Imeongeza amri ya "git matengenezo", ambayo hukuruhusu kufanya kazi ya mara kwa mara kwenye mifumo ambayo haiungi mkono cron. Kwa mfano, kwa kutumia amri mpya, unaweza kupanga ili mchakato wa ufungaji wa hifadhi uendeshe mara kwa mara, ili usihitaji kusubiri hadi hifadhi imefungwa wakati ufungaji unafanywa moja kwa moja wakati wa kuendesha amri mbalimbali. Amri ya "git matengenezo" hukuruhusu kufanya uboreshaji na shughuli ili kudumisha muundo bora wa hazina nyuma, bila kuzuia kikao cha maingiliano - mara moja kwa saa, kazi inafanywa ili kupakua kwa uangalifu vitu vipya kutoka kwa hazina ya mbali na kusasisha faili na grafu ya ahadi, na mchakato wa kufunga hazina huanza kila usiku.
  • Usaidizi ulioongezwa wa kudumisha index ya nyuma (revindex) kwenye diski kwa faili za pakiti. Kumbuka kwamba Git huhifadhi data zote kwa namna ya vitu, ambavyo viko katika faili tofauti. Ili kuongeza ufanisi wa kufanya kazi na hazina, vitu huwekwa kwenye faili za pakiti, ambayo habari huwasilishwa kwa namna ya mtiririko wa vitu vinavyofuatana (muundo sawa hutumiwa wakati wa kuhamisha vitu na git fetch na git push. amri). Kwa kila faili ya pakiti, faili ya index (.idx) imeundwa, ambayo inakuwezesha kuamua haraka sana kukabiliana katika faili ya pakiti ambayo kitu kilichotolewa kinahifadhiwa kwa kutumia kitambulisho cha kitu. Imeanzishwa katika Git 2.31, kielezo cha kinyume (.rev) kinalenga kuboresha mchakato wa kubainisha kitambulishi cha kitu kutoka kwa taarifa kuhusu uwekaji wa kitu katika faili ya pakiti.

    Hapo awali, ubadilishaji kama huo ulifanyika kwa kuruka wakati wa kuchanganua faili ya pakiti na ilihifadhiwa tu kwenye kumbukumbu, ambayo haikuruhusu fahirisi zinazofanana kutumika tena na kulazimisha faharisi kuzalishwa kila wakati. Uendeshaji wa kuunda faharasa unakuja hadi kuunda safu ya jozi za nafasi ya kitu na kuipanga kwa mkao, ambayo inaweza kuchukua muda mrefu kwa faili kubwa za pakiti.

    Kwa mfano, operesheni ya kuonyesha yaliyomo ya vitu, ambayo hutumia index ya moja kwa moja, ilikuwa mara 62 kwa kasi zaidi kuliko operesheni ya kuonyesha ukubwa wa vitu, ambayo data ya nafasi-kwa-kitu haikuonyeshwa. Baada ya kutumia index ya nyuma, shughuli hizi zilianza kuchukua takriban wakati huo huo. Faharisi za kugeuza pia hukuruhusu kuharakisha utumaji wa kitu wakati wa kutekeleza amri za kuleta na kushinikiza kwa kuhamisha moja kwa moja data iliyotengenezwa tayari kutoka kwa diski. Kwa chaguomsingi, faharasa za kinyume hazijaundwa; ili kuzizalisha, unahitaji kuwezesha mpangilio wa "git config pack.writeReverseIndex true" na kisha upakie hazina kwa amri ya "git repack -Ad".

  • Uboreshaji wa utendaji ulioongezwa kulingana na mwonekano katika umbizo la faili ya ahadi, inayotumiwa kuboresha ufikiaji wa habari kuhusu ahadi, data mpya kuhusu nambari ya uzalishaji wa ahadi, ambayo inaweza kutumika kuharakisha shughuli za ziada na ahadi.
  • Chaguo zilizoongezwa za kufafanua upya jina la tawi kuu linalotumiwa kwa chaguo-msingi katika hazina mpya (mipangilio ya init.defaultBranch). Wakati wa kupata hazina za nje, git inajaribu kuangalia tawi lililoelekezwa na HEAD, i.e. ikiwa seva ya nje inatumia tawi la "kuu" kwa chaguo-msingi, basi operesheni ya "git clone" itajaribu kuangalia "kuu" ndani ya nchi. Git 2.31 sasa inasaidia aina hii ya malipo kwa hazina tupu. Kwa mfano, wakati wa kuunda hazina mpya ndani ya nchi kabla ya kuongeza viraka vya kwanza kwake, nakala ya ndani sasa itakuwa na jina chaguo-msingi la mkondo lililowekwa kwenye seva ya nje.
  • Imeongeza --disk-usage chaguo kwa amri ya "git rev-list" ili kutoa muhtasari wa saizi ya vitu.
  • Kwa kutarajia mabadiliko yajayo ya uunganisho wa nyuma, ugunduzi wa kubadilisha jina umeboreshwa kwa kiasi kikubwa.
  • Usaidizi wa maktaba ya kawaida ya kujieleza ya PCRE1 umekatishwa.
  • Inawezekana kukataza kwa nguvu matumizi ya viungo vilivyofupishwa, bila kujali algorithm ya hashing. Marufuku yamewezeshwa kwa kutoa thamani "hapana" kwa parameter ya core.abbrev.
  • Imeongezwa "--path-format=(absolute|relative)" chaguo kwa amri ya "git rev-parse" ili kubainisha kwa uwazi ikiwa njia za jamaa au kabisa zinafaa kutolewa.
  • Hati za kukamilisha Bash hurahisisha kuongeza sheria za kukamilisha kwa amri zako ndogo za "git".
  • Imeongeza --stdin chaguo kwa amri ya "git bundle" ili kusoma marejeleo kutoka kwa mtiririko wa kawaida wa ingizo.
  • Chaguo jipya "--diff-merges=" limeongezwa kwa amri ya "git log".
  • Imeongeza chaguo la "--deduplicatecan" kwa amri ya "git ls-files" ili kuondoa matokeo yanayorudiwa.
  • Imeongeza vinyago vipya ili kuwatenga aina mbalimbali za ahadi - β€œ^!” na "^-".
  • Imeongeza chaguzi za "--left-only" na "--right-only" kwenye amri ya "git range-diff" ili kuonyesha upande mmoja tu wa masafa yanayolinganishwa.
  • Imeongezwa --skip-to=" na "--rotate-to=" chaguzi kwa amri za "git diff" na "git log" ili kuruka au kusogea hadi mwisho wa njia za mwanzo.
  • Imeongezwa "--skip-to=" chaguo kwa amri ya "git difftool" ili kuanza tena kipindi kilichokatizwa kutoka kwa njia ya kiholela.
  • Kanuni ya maadili, ambayo inafafanua kanuni za msingi za kusuluhisha hali za migogoro kati ya wasanidi programu, imesasishwa hadi toleo la 2.0 (toleo la awali la 1.4 lilitumika).

    Chanzo: opennet.ru

Kuongeza maoni