Toleo la udhibiti wa chanzo cha Git 2.39

Baada ya miezi miwili ya maendeleo, mfumo wa udhibiti wa chanzo uliosambazwa Git 2.39 umetolewa. 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 483, yaliyotayarishwa na ushiriki wa watengenezaji 86, ambao 31 walishiriki katika maendeleo kwa mara ya kwanza. Ubunifu kuu:

  • Amri ya "git shortlog", iliyoundwa ili kuonyesha muhtasari na takwimu kutoka kwa historia ya mabadiliko, imeongeza chaguo la "-group" kwa upangaji wa majukumu katika vikundi bila ukomo wa mwandishi au mtoa huduma. Kwa mfano, ili kuonyesha orodha ya wasanidi programu iliyo na taarifa kuhusu idadi ya mabadiliko, kwa kuzingatia wasaidizi waliotajwa katika sehemu ya "Co-authored-by", unaweza kutumia amri: git shortlog -ns --group=author - -kikundi=trela:iliyoandikwa-na

    Toleo la kumbukumbu fupi linaweza kujumlishwa kwa kutumia vibainishi vya uumbizaji, na chaguo la "--group" linaweza kurahisisha kwa kiasi kikubwa uundaji wa ripoti changamano na kuondoa hitaji la amri za ziada za kupanga. Kwa mfano, ili kuunda ripoti yenye maelezo kuhusu ni ahadi ngapi za toleo fulani zilizokubaliwa katika kila mwezi, unaweza kubainisha: git shortlog v2.38.0.. β€”date='format:%Y-%m' β€”group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Hapo awali, kufanya operesheni kama hiyo ingehitajika kutumia aina na huduma za kipekee: git log v2.38.0. .. β€”date='umbizo:%Y -%m' β€”format='%cd' | aina | umoja -c

  • Uwezo wa utaratibu wa "pakiti za cruft", iliyoundwa kwa ajili ya kufunga vitu visivyoweza kufikiwa ambavyo havijarejelewa kwenye hazina (havijarejelewa na matawi au lebo), vimepanuliwa. Vitu visivyoweza kufikiwa vinafutwa na mtoza takataka, lakini kubaki kwenye ghala kwa muda fulani kabla ya kufutwa ili kuepusha hali ya mbio. Utaratibu wa "cruft packs" hukuruhusu kuhifadhi vitu vyote visivyoweza kufikiwa kwenye faili moja ya pakiti, na kuonyesha data juu ya wakati wa urekebishaji wa kila kitu kwenye jedwali tofauti, iliyohifadhiwa kwenye faili tofauti na kiendelezi cha ".mtimes", ili wafanye. zisiingiliane na jumla ya muda wa urekebishaji.

    Urefu wa muda ambao vitu visivyoweza kufikiwa husalia kwenye hifadhi kabla ya kufutwa kabisa huamuliwa na chaguo la β€œβ€”prune=”. " Hata hivyo, ingawa kuchelewesha kabla ya kufuta ni njia nzuri na ya vitendo ya kuzuia uharibifu wa hifadhi kutokana na hali ya rangi, sio ya kuaminika 100%. Ili kurahisisha kurejesha hazina iliyoharibiwa, toleo jipya linatoa uwezo wa kuhifadhi vitu vilivyokosekana kwa kuongeza chaguo la "--expire-to" kwa amri ya "git repack", ambayo hukuruhusu kubainisha faili ili kuunda faili ya nje. nakala ya vitu vyote vilivyofutwa. Kwa mfano, ili kuhifadhi vitu visivyoweza kufikiwa ambavyo havijabadilika katika dakika 5 zilizopita kwenye faili ya backup.git, unaweza kutumia amri: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -kwa=../backup.git

  • Imeongezeka kwa kiasi kikubwa (hadi 70%) kasi ya operesheni ya "git grep -cached" wakati wa kutafuta katika maeneo ambayo hutumia cloning sehemu (sparse-checkout) na ambayo kuna faharisi za sehemu (sparse index). Hapo awali, wakati wa kutaja chaguo la "-cached", utafutaji ulifanyika kwanza kwenye faharisi ya kawaida, na kisha kwa sehemu, ambayo ilisababisha ucheleweshaji unaoonekana wakati wa kutafuta katika hazina kubwa.
  • Uthibitishaji wa seva wa upatanifu wa vitu vipya kabla ya kuwekwa kwenye hazina wakati wa operesheni ya "git push" umeharakishwa. Kwa kubadili uhasibu kwa viungo vilivyotangazwa tu wakati wa kuangalia, katika ghala la majaribio na viungo milioni 7, ambavyo ni 3% tu vinavyofunikwa na operesheni ya kushinikiza, uboreshaji ulioletwa ulifanya iwezekanavyo kupunguza muda wa kuangalia kwa mara 4.5.
  • Ili kulinda dhidi ya idadi kamili inayoweza kufurika katika msimbo, amri ya "git apply" huweka upeo wa juu wa viraka vinavyoweza kuchakatwa. Ikiwa ukubwa wa kiraka unazidi GB 1, hitilafu sasa itaonyeshwa.
  • Ili kulinda dhidi ya athari zinazoweza kutokea, mabadiliko yamefanywa ili kusafisha maelezo yasiyo ya lazima kutoka kwa vichwa vilivyowekwa wakati wa kutumia sehemu ya h2h3 yenye chaguo la GIT_TRACE_CURL=1 au GIT_CURL_VERBOSE=1 pamoja na HTTP/2.
  • Wakati wa kufanya ukaguzi kwenye tawi ambalo ni kiunga cha mfano kwa tawi lingine, amri ya "git symbolic-ref HEAD" sasa inaonyesha jina la tawi linalolengwa badala ya jina la ulinganifu.
  • Umeongeza usaidizi wa hoja ya @{-1} kwa chaguo la "--edit-description" ("git branch -edit-description @{-1}") kwa ajili ya kuhariri maelezo ya tawi lililopita.
  • Imeongeza amri ya "git merge-tree --stdin" kupitisha orodha ya chaguzi kupitia pembejeo ya kawaida.
  • Kwenye mifumo ya faili ya mtandao, kidhibiti cha fsmonitor, ambacho kinafuatilia mabadiliko katika mfumo wa faili, kimezimwa kwa chaguo-msingi.

Chanzo: opennet.ru

Kuongeza maoni