Git 2.41 tsarin sarrafa tushen yana samuwa

Bayan watanni uku na haɓakawa, an buga sakin tsarin sarrafa tushen rarraba Git 2.41. Git yana ɗaya daga cikin mafi mashahuri, abin dogaro, kuma tsarin sarrafa sigar aiki mai girma wanda ke ba da sassauƙan kayan aikin haɓaka marasa daidaituwa dangane da reshe da haɗa rassan. Don tabbatar da amincin tarihi da juriya ga sauye-sauye na dawowa, ana amfani da hashing na tarihin da ya gabata a cikin kowane alƙawari, kuma yana yiwuwa a tabbatar da alamun kowane mutum da aikata tare da sa hannun dijital daga masu haɓakawa.

Idan aka kwatanta da baya saki, 542 canje-canje da aka yarda a cikin sabon version, shirya tare da sa hannu na 95 developers, wanda 29 dauki bangare a cikin ci gaba a karon farko. Manyan sabbin abubuwa:

  • Ingantacciyar sarrafa abubuwan da ba za a iya kaiwa ba waɗanda ba a ambata a cikin ma'ajiyar (ba a yi nuni da rassa ko alamun ba). Masu tara shara suna cire abubuwan da ba za a iya isarsu ba, amma su kasance a cikin ma'ajiya na wani ɗan lokaci kafin a cire su don guje wa yanayin tsere. Don yin la'akari da lokacin abubuwan da ba za a iya isa ba, dole ne a ɗaure su da lakabi tare da lokacin canjin lokaci na abubuwa masu kama, wanda ba ya ba da damar adana su a cikin fakitin fakiti guda ɗaya, wanda duk abubuwa suna da lokaci na canji na yau da kullum. A baya can, an adana kowane abu da ba za a iya isa ba a cikin wani fayil daban, wanda ya haifar da matsaloli idan akwai adadi mai yawa na sabbin abubuwan da ba a iya isa ga ba tukuna. A cikin sabon sakin, ta tsohuwa, ana amfani da tsarin “cruft packs” don tattara abubuwan da ba za a iya kaiwa ba, wanda ke ba da damar adana duk abubuwan da ba za a iya isa ba a cikin fakitin fakiti ɗaya, da kuma nuna bayanan kan lokacin gyara kowane abu a cikin tebur daban da aka adana a cikin fayil tare da tsawo na ".mtimes" kuma an haɗa su ta amfani da fayil ɗin fihirisa tare da tsawo na ".idx".
    Git 2.41 tsarin sarrafa tushen yana samuwa
  • Ta hanyar tsoho, ana kunna riƙon juzu'i (revindex) akan faifai don fakitin fayilolin. Lokacin da aka gwada akan ma'ajiyar torvalds/linux, amfani da juzu'i ya ba mu damar haɓaka ayyukan "git push" mai ƙarfi da albarkatu sau 1.49, da kuma ayyuka masu sauƙi, kamar ƙididdige girman abu ɗaya ta amfani da "git cat-" fayil --batch='%(abu: disk)" sau 77. Fayilolin ("rev") tare da juzu'i na baya za a adana su a cikin ma'ajiyar a cikin ".git/objects/pack" directory.

    Ka tuna cewa Git yana adana duk bayanai a cikin nau'ikan abubuwa, waɗanda aka sanya su cikin fayiloli daban-daban. Don haɓaka ingantaccen aiki tare da ma'ajiyar, ana kuma sanya abubuwa a cikin fakitin fakitin, wanda aka gabatar da bayanai ta hanyar rafi na abubuwa masu biye da juna (ana amfani da irin wannan tsari yayin canja wurin abubuwa tare da git fetch da git). tura umarni). An ƙirƙiri fayil ɗin maƙasudi (.idx) don kowane fakitin fakiti, wanda ke ba ku damar tantance ɓarna da sauri a cikin fakitin ta inda abin da aka bayar ke adana ta mai gano abu.

    Fihirisar juzu'i da aka haɗa a cikin sabon sakin yana nufin daidaita tsarin tantance ID na abu daga bayanin wurin wurin abun cikin fayil ɗin fakitin. A baya can, an yi irin wannan jujjuyawar akan tashi yayin tantancewar fayil ɗin fakitin kuma an adana shi kawai a cikin ƙwaƙwalwar ajiya, wanda bai ba da damar sake amfani da irin waɗannan firikwensin ba kuma ya tilasta ƙirƙira fihirisar kowane lokaci. An rage aikin gina fihirisar zuwa gina nau'i-nau'i-nau'i-nau'i-nau'i-nau'i na abu da rarraba shi ta matsayi, wanda zai iya ɗaukar lokaci mai tsawo don manyan fayilolin fakitin.

    Alal misali, aikin nuna abubuwan da ke cikin abubuwa, wanda ke amfani da maƙasudin kai tsaye, ya ninka sau 62 cikin sauri fiye da aikin nuna girman abubuwa, wanda ba a ba da bayanin alakar matsayi-zuwa-abu ba. Bayan amfani da juzu'i na baya, waɗannan ayyukan sun fara ɗaukar kusan lokaci guda. Har ila yau, firikwensin jujjuyawar yana ba ku damar hanzarta aikin aika abubuwa yayin aiwatar da ɗora da tura umarni ta hanyar canja wurin shirye-shiryen bayanai daga faifai kai tsaye.

    Git 2.41 tsarin sarrafa tushen yana samuwa

  • Ƙara goyon baya don wucewa WWW-Tabbatar da kanun labarai tsakanin mai kula da takaddun shaida da sabis na tantancewa zuwa ƙa'idar "mataimakin shaida" da aka yi amfani da shi don ƙaddamar da takaddun shaida lokacin samun shiga tantacce ma'aji. Goyon bayan WWW-Authenticate header yana ba da damar ƙaddamar da ma'auni na OAuth zuwa mafi ɓangarorin keɓance damar mai amfani zuwa ma'ajiyar bayanai da iyakance iyakokin da ke akwai don buƙatu.
  • Zabin tsarin da aka ƙara "%(a gaba-bayan: )", wanda ke ba ka damar samun bayanai nan da nan game da adadin aikatawa ko ba a nan a wani reshe, dangane da wani reshe (nawa ne reshe ke baya ko gaba da wani a matakin aikatawa). A baya can, samun wannan bayanin yana buƙatar umarni daban-daban guda biyu: "git rev-list --count main..my-feature" don samun adadin ayyuka na musamman ga reshe, da "git rev-list --count my-feature.. main" don samun lambar bata aikata. Yanzu ana iya rage irin waɗannan ƙididdiga zuwa umarni ɗaya, wanda ke sauƙaƙe masu sarrafa rubutu kuma yana rage lokacin aiwatarwa. Misali, don nuna rassan da ba a haɗa su ba kuma a tantance ko suna baya ko gaba da babban reshensu, zaku iya amfani da layi ɗaya: $ git for-each-ref --no-merged=origin/HEAD \ --format=' %(refname:gajeren) %(gaba-baya: asali/HEAD)' \ refs/heads/tb/ | shafi -t tb/cruft-extra-tips 2 96 tb/for-kowa-ref-ban da 16 96 tb/roaring-bitmaps 47 3 maimakon rubutun da aka yi amfani da shi a baya, wanda sau 17 a hankali: $ git ga-kowane-ref - format='%(refname: shortname)' --no-merged=asalin/HEAD \ refs/heads/tb | yayin karanta ref yi gaba = "$(git rev-list --count origin/HEAD..$ref)" bayan = "$(git rev-list --count $ ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$ gaba" "$a baya" anyi | shafi -t tb/cruft-karin-nasihu 2 96 tb/na-kowane-ref-ban da 16 96 tb/roaring-bitmaps 47 3
  • An ƙara zaɓin "--porcelain" zuwa "git fetch" umarni, wanda ke haifar da fitarwa a cikin tsari " ”, ƙarancin karantawa, amma ya fi dacewa don tantancewa cikin rubutun.
  • An ƙara saitin "fetch.hideRefs" don hanzarta ayyukan "git fetch" ta hanyar ɓoye ɓangaren mahaɗan a cikin ma'ajiyar gida a matakin duba ko uwar garken ta aika da cikakkun abubuwan, wanda ke adana lokaci ta iyakance cak ga sabobin kawai. daga inda aka dawo da bayanai kai tsaye. Misali, lokacin gwaji akan tsarin tare da ma'ajiyar bayanai wanda ke ƙunshe da adadi mai yawa na hanyoyin haɗin waje da aka bibiya, ban da duk hanyoyin haɗin yanar gizo ban da waɗanda aka tuntuɓar uwar garken nesa na $ ya rage aikin "git fetch" daga mintuna 20 zuwa daƙiƙa 30. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$remote \ debo $remote
  • Umurnin "git fsck" yana aiwatar da ikon bincika cin hanci da rashawa, daidaitawa na checksum, da daidaiton ƙima a cikin bitmaps masu isa da jujjuya fihirisa.
  • Umurnin "git clone --local" yanzu yana nuna kuskure lokacin ƙoƙarin yin kwafi daga ma'ajiyar da ke ɗauke da alamomin alaƙa cikin $GIT_DIR.

source: budenet.ru

Add a comment