Git 2.41 sosi yekudzora system iripo

Mushure memwedzi mitatu yebudiriro, iyo yakagoverwa sosi yekudzora system Git 2.41 yakaburitswa. Git ndeimwe yeanonyanya kufarirwa, akavimbika uye akakwira-inoshanda shanduro yekudzora masisitimu, achipa anochinjika asiri-mutsara ekuvandudza maturusi akavakirwa pabazi nekubatanidza. Kuti ive nechokwadi chekutendeseka kwenhoroondo uye kuramba kune shanduko yekudzoka, hashing yakadzama yenhoroondo yese yapfuura inoshandiswa mukuzvipira kwega kwega; zvinogoneka zvakare kuvimbisa ma tag ega uye kuita nemasiginecha edhijitari evagadziri.

Kuenzaniswa nekuburitswa kwekare, iyo vhezheni itsva yaisanganisira 542 shanduko, yakagadzirirwa nekubatanidzwa kwevagadziri makumi mapfumbamwe nemashanu, avo 95 vakatora chikamu mukusimudzira kekutanga. Zvitsva zvikuru:

  • Kuvandudzwa kwekubata kwezvinhu zvisingasvikike zvisina kutaurwa mudura (zvisina kutaurwa nemapazi kana ma tag). Zvinhu zvisingasvikike zvinodzimwa nemuunganidzi wemarara, asi ramba uri mudura kwenguva yakati zvisati zvadzimwa kudzivirira mamiriro erudzi. Kuti utarise nguva yekuitika kwezvinhu zvisingasvikike, zvinodikanwa kuti ubatanidze ma tag kwavari nenguva yekuchinja kwezvinhu zvakafanana, izvo zvisingabvumiri kuzvichengeta mune imwe pack faira umo zvinhu zvese zvine nguva yakafanana yekuchinja. Kare, chimwe nechimwe chinhu chisingasvikike chakachengetwa mune imwe faira, izvo zvakakonzera matambudziko apo pakanga paine nhamba huru yezvinhu zvitsva zvisingasviki izvo zvisati zvave zvakakodzera kubviswa. Mukuburitswa kutsva, iyo "cruft packs" nzira inoshandiswa neyakagadzika kurongedza zvinhu zvisingasvikike, izvo zvinokutendera iwe kuti uchengete zvese zvisingasvikike mupakiti imwe faira, uye data pane yekuchinja nguva yechinhu chimwe nechimwe inoratidzwa mune imwe tafura, yakachengetwa. mufaira rine kuwedzera ".mtimes" uye yakabatanidzwa uchishandisa index file ine extension ".idx".
    Git 2.41 sosi yekudzora system iripo
  • Kuchengeta reverse index pane diski yepakiti mafaera kunogoneswa nekusarudzika. Paunenge uchiyedza pane torvalds/linux repository, kushandiswa kwereverse index kwakaita kuti zvikwanise kukurumidza kuita mashandiro e "git push" neka1.49 nguva, uye mashandiro ari nyore sekuverenga saizi yechinhu chimwe chete uchishandisa "git cat- file β€”batch='%(chinhu:disk)' "77 times. Mafaira (β€œ.rev”) ane reverse index achachengetwa mukati me repository mu β€œ.git/objects/pack” directory.

    Rangarira kuti Git inochengeta data rese muchimiro chezvinhu, izvo zviri mumafaira akasiyana. Kuwedzera kugona kwekushanda nerepository, zvinhu zvinoiswa mumapakiti mafaera, umo ruzivo rwunounzwa nenzira yerukova rwezvinhu zvinoteverana (mafomati akafanana anoshandiswa pakufambisa zvinhu negit fetch uye git push. mirairo). Papakiti imwe neimwe faira, index file (.idx) inogadzirwa, iyo inokutendera kuti ugone kukurumidza kuona kubviswa mupakiti faira panochengeterwa chinhu chakapihwa uchishandisa chiziviso chechinhu.

    Iyo reverse index inosanganisirwa mukuburitswa kutsva ine chinangwa chekunatsiridza maitiro ekuona chinongedzo chechinhu kubva paruzivo nezvekuiswa kwechinhu mupakiti faira. Kare, kutendeuka kwakadaro kwaiitwa panhunzi paipenengura faira yepakiti uye yaichengetwa mundangariro chete, iyo isingabvumiri ma indexes akafanana kuti ashandiswezve uye kumanikidza kuti index igadzirwe nguva imwe neimwe. Iko kushanda kwekuvaka index kunouya pakugadzira mutsara wechinhu-chinzvimbo pairs nekuchironga nechinzvimbo, izvo zvinogona kutora nguva yakareba kune mahombe epaki mafaera.

    Semuyenzaniso, oparesheni yekuratidza zviri mukati mezvinhu, iyo inoshandisa index yakananga, yakakurumidza 62 nguva kupfuura kuvhiya kuratidza ukuru hwezvinhu, izvo nzvimbo-ku-chinhu data yakanga isina indexed. Mushure mekushandisa reverse index, mabasa aya akatanga kutora inenge nguva imwe chete. Reverse indexes zvakare inobvumidza iwe kuti ukurumidze kutumira chinhu kutumira mashandiro paunenge uchitora uye kusunda mirairo nekuendesa zvakananga-yakagadzirwa data kubva kudiski.

    Git 2.41 sosi yekudzora system iripo

  • Iyo "credential helper" protocol, inoshandiswa kuendesa magwaro kana uchinge wawana marepositori ine mashoma kuwana, yakawedzera tsigiro yekupfuura WWW-Authenticate misoro pakati peanobatika uye sevhisi iyo yechokwadi inoitwa. Tsigiro yeWWW-Authenticate header inobvumidza iwe kuti upfuure OAuth scope paramita kune imwe granular kupatsanurwa kwemushandisi kuwana kune repositori uye kuganhurwa kwezviyero zviripo kune zvikumbiro.
  • Yakawedzerwa fomati sarudzo "% (kumberi-kumashure:" kune iyo-yega-ref murairo: )", izvo zvinokutendera kuti uwane ruzivo rwekukurumidza nezve nhamba yezviitwa zviripo kana kuti zvisipo mune rimwe bazi, zvine chekuita nerimwe bazi (yakawanda sei bazi rimwe riri kumashure kana kumberi kwerimwe padanho rekuita). Pakutanga, kuti uwane ruzivo rwakadai, waifanira kumhanyisa mirairo miviri yakasiyana: "git rev-list -count main..my-feature" kuti uwane nhamba yezvibvumirano zvakasiyana nebazi uye "git rev-list -verenga yangu-chimiro ..main” kuti uwane nhamba yakashaikwa kuzvipira. Iye zvino maverengero akadai anogona kudzikiswa kuita murairo mumwe chete, unorerutsa kunyora kwevabati uye kuderedza nguva yekuuraya. Semuenzaniso, kuratidza mapazi asina kubatanidzwa uye kuongorora kana ari kumashure kana kumberi kwebazi guru, unogona kushandisa rini-rimwe: $ git for-each-ref -no-merged=origin/HEAD \ -format ='%(refname:pfupi) %(mberi-kumashure :mavambo/HEAD)' \refs/heads/tb/ | column -t tb/cruft-extra-tips 2 96 tb/for-each-refβ€”usabatanidze 16 96 tb/roaring-bitmaps 47 3 panzvimbo peyakamboshandiswa script, inomhanya ka17 zvishoma nezvishoma: $ git for-each-ref β€” format='%(refname:pfupi)' β€”no-merged=origin/HEAD \ refs/heads/tb | uchiverenga ref ita kumberi = "$(git rev-list -count mabviro/HEAD..$ref)" kumashure = "$(git rev-list -count $ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$ahead" "$kumashure" zvaitwa | column -t tb/cruft-extra-tips 2 96 tb/for-each-ref-kunze 16 96 tb/roaring-bitmaps 47 3
  • Iyo "-porcelain" sarudzo yakawedzerwa kune "git fetch" yekuraira, kana yatsanangurwa, inobuda inogadzirwa mufomati " ", isingaverengeki, asi iri nyore kupatsanura muzvinyorwa.
  • Yakawedzera iyo "fetch.hideRefs", iyo inokutendera kuti ukurumidze "git fetch" mashandiro nekuvanza mamwe mareferensi munzvimbo inochengeterwa nzvimbo padanho rekutarisa kuti sevha yakatumira seti yakazara yezvinhu, izvo zvinochengetedza nguva. kudzikamisa cheki chete kumaseva ayo data inotorwa zvakananga. Semuenzaniso, paunenge uchimhanyisa bvunzo pane system ine repositori ine nhamba huru yezvekunze zvinongedzo zvinongedzo, zvisingabatanidzi zvese zvinongedzo kunze kweizvo zvinongedzerwa kune inotarirwa server $remote yakaderedza kuitwa kwegit fetch operation kubva pamaminitsi makumi maviri kusvika pamasekondi makumi matatu. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$kure \ kutora $kure
  • Iwo "git fsck" murairo unopa kugona kutarisa huwori, checksum kutevedzera, uye kurongeka kwemakoshero mukuwanika bitmaps uye reverse indexes.
  • Iyo "git clone --local" command ikozvino inoratidza chikanganiso paunenge uchiedza kukopa kubva kune repository ine symlinks mukati me $GIT_DIR.

Source: opennet.ru

Voeg