Git 2.41 source control system ikupezeka

Pambuyo pamiyezi itatu yachitukuko, makina owongolera magwero a Git 2.41 adatulutsidwa. Git ndi imodzi mwazinthu zodziwika bwino, zodalirika komanso zotsogola kwambiri, zomwe zimapereka zida zosinthika zopanda mzere zomwe zimatengera nthambi ndi kuphatikiza. Kuwonetsetsa kukhulupirika kwa mbiri yakale komanso kukana kusintha kosinthika, hashing yambiri yonse yam'mbuyomu imagwiritsidwa ntchito pakupanga kulikonse; ndizothekanso kutsimikizira ma tag amodzi ndikuchita ndi siginecha ya digito ya omwe akupanga.

Poyerekeza ndi kumasulidwa koyambirira, mtundu watsopanowu unaphatikizapo zosintha za 542, zokonzedwa ndi kutenga nawo mbali kwa opanga 95, omwe 29 adatenga nawo gawo pa chitukuko kwa nthawi yoyamba. Zatsopano zazikulu:

  • Kuwongolera kwabwino kwa zinthu zosafikirika zomwe sizinatchulidwe munkhokwe (zosatchulidwa ndi nthambi kapena ma tag). Zinthu zosafikirika zimachotsedwa ndi wotolera zinyalala, koma kukhalabe m'malo osungiramo zinthu kwakanthawi asanachotsedwe kuti apewe mikhalidwe yamtundu. Kuti muwone nthawi ya zochitika za zinthu zosafikirika, m'pofunika kuyika ma tag kwa iwo ndi nthawi ya kusintha kwa zinthu zofanana, zomwe sizilola kuzisunga mu fayilo imodzi ya paketi yomwe zinthu zonse zimakhala ndi nthawi yofanana yosintha. Poyamba, chinthu chilichonse chosafikirika chinasungidwa mu fayilo yosiyana, zomwe zinayambitsa mavuto pamene panali zinthu zambiri zatsopano zomwe sizinafikeko zomwe sizinali zoyenera kuchotsedwa. Pakumasulidwa kwatsopano, makina a "cruft packs" amagwiritsidwa ntchito mwachisawawa kuti anyamule zinthu zosafikirika, zomwe zimakulolani kusunga zinthu zonse zosafikirika mu fayilo imodzi ya paketi, ndipo deta pa nthawi yosinthidwa ya chinthu chilichonse ikuwonetsedwa patebulo losiyana, losungidwa. mufayilo yokhala ndi chowonjezera ".mtimes" ndikulumikizidwa pogwiritsa ntchito fayilo yolozera yokhala ndi ".idx".
    Git 2.41 source control system ikupezeka
  • Kusunga cholozera chosinthira pa disk pamafayilo amapaketi kumayatsidwa mwachisawawa. Poyesa pa torvalds/linux repository, kugwiritsa ntchito reverse index kunapangitsa kuti zitheke kufulumizitsa ntchito za "git push" zogwiritsa ntchito nthawi 1.49, ndi ntchito zosavuta monga kuwerengera kukula kwa chinthu chimodzi pogwiritsa ntchito "git cat- file β€”batch='%(objectsize:disk)' "ka77. Mafayilo (β€œ.rev”) okhala ndi reverse index adzasungidwa mkati mwankhokwe mu bukhu la β€œ.git/objects/pack”.

    Kumbukirani kuti Git imasunga deta yonse mu mawonekedwe a zinthu, zomwe zili m'mafayilo osiyana. Kuti muwonjezere mphamvu yogwira ntchito ndi malo osungiramo zinthu, zinthu zimayikidwanso m'mafayilo a paketi, momwe chidziwitso chimaperekedwa ngati mtsinje wa zinthu zomwe zikutsatirana (mtundu womwewo umagwiritsidwa ntchito posamutsa zinthu ndi git fetch ndi git push. malamulo). Pa fayilo iliyonse ya paketi, fayilo ya index (.idx) imapangidwa, yomwe imakupatsani mwayi wodziwa mwachangu kuchotsera mu fayilo ya paketi pomwe chinthu choperekedwacho chimasungidwa pogwiritsa ntchito chizindikiritso cha chinthu.

    Mlozera wobwerera kumbuyo womwe waphatikizidwa m'chikalata chatsopano cholinga chake ndi kukhathamiritsa njira yodziwira chozindikiritsa chinthu kuchokera ku chidziwitso chokhudza kuyika kwa chinthucho mu fayilo ya paketi. M'mbuyomu, kutembenuka kotereku kunkachitika pa ntchentche ndikuyika fayilo ya paketi ndikusungidwa pamtima, zomwe sizinalole kuti ma index ofanana agwiritsidwenso ntchito ndikukakamiza kuti indexyo ipangidwe nthawi iliyonse. Ntchito yomanga index imatsikira pakupanga magulu awiriawiri azinthu ndikuzisanja potengera malo, zomwe zingatenge nthawi yayitali pamafayilo akulu akulu.

    Mwachitsanzo, ntchito yowonetsera zomwe zili muzinthu, zomwe zimagwiritsa ntchito ndondomeko yachindunji, zinali zofulumira nthawi 62 kuposa ntchito yowonetsera kukula kwa zinthu, zomwe deta ya malo-to-chinthu sinalembedwe. Pambuyo pogwiritsira ntchito reverse index, ntchitozi zinayamba kutenga pafupifupi nthawi yomweyo. Ma index a reverse amakupatsaninso mwayi wofulumizitsa ntchito yotumiza zinthu mukamaliza kutsata ndikukankhira ndikusamutsa deta yomwe yapangidwa kale kuchokera pa disk.

    Git 2.41 source control system ikupezeka

  • Protocol ya "credential helper", yomwe imagwiritsidwa ntchito kusamutsa zidziwitso mukamalowa m'malo osungira omwe ali ndi mwayi wocheperako, yawonjezera chithandizo chodutsa mitu ya WWW-Authenticate pakati pa chothandizira chovomerezeka ndi ntchito yomwe kutsimikizika kumachitidwa. Thandizo la mutu wa WWW-Authenticate limakupatsani mwayi wodutsa magawo a OAuth kuti mulekanitse mochulukirachulukira kwa ogwiritsa ntchito nkhokwe ndi kuyika malire a kuchuluka kwa zopempha.
  • Chowonjezera chosankha "% (kutsogolo-kumbuyo:" ku lamulo la-ref-ref: )", zomwe zimakupatsani mwayi wodziwa zambiri za kuchuluka kwa zomwe zikuchitika kapena kulibe munthambi ina, yokhudzana ndi nthambi ina (yomwe ili kumbuyo kapena kutsogolo kwa ina pamlingo wotani). M'mbuyomu, kuti mudziwe zambiri, mumayenera kuyendetsa malamulo awiri osiyana: "git rev-list -count main..my-feature" kuti mupeze kuchuluka kwa mabizinesi apadera ku nthambi ndi "git rev-list - count my-feature" ..main" kuti mupeze nambala yosoweka. Tsopano kuwerengera kotereku kungathe kuchepetsedwa kukhala lamulo limodzi, lomwe limathandizira kulemba kwa ogwira ntchito komanso kuchepetsa nthawi yochita. Mwachitsanzo, kuti muwonetse nthambi zomwe sizinaphatikizidwe ndikuwunika ngati zili kumbuyo kapena patsogolo pa nthambi yayikulu, mutha kugwiritsa ntchito mzere umodzi: $ git for-each-ref -no-merged=origin/HEAD \ -format ='%(refname:short) %(head-back :origin/HEAD)' \refs/heads/tb/ | column -t tb/cruft-extra-tips 2 96 tb/for-each-refβ€”kupatula 16 96 tb/roaring-bitmaps 47 3 m’malo mwa script yomwe inagwiritsidwa ntchito kale, yomwe imayenda pang’onopang’ono ka 17: $ git for-ref-ref β€” mtundu='%(refname:short)' β€”no-merged=origin/HEAD \ refs/heads/tb | mukuwerenga ref do ahead="$(git rev-list -count origin/HEAD..$ref)" kumbuyo="$(git rev-list -count $ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$ahead" "$kumbuyo" zachitika | ndime -t tb/cruft-zowonjezera-nsonga 2 96 tb/kwa-ref-onse-kupatula 16 96 tb/roaring-bitmaps 47 3
  • Njira ya "-porcelain" yawonjezedwa ku lamulo la "git fetch", ikafotokozedwa, zotuluka zimapangidwa mwanjira " ", yosawerengeka, koma ndiyosavuta kuyika m'malemba.
  • Anawonjezera "fetch.hideRefs", zomwe zimakupatsani mwayi wofulumizitsa ntchito za "git fetch" mwa kubisa zina mwazosungirako kumalo osungirako malo poyang'ana kuti seva yatumiza zinthu zonse, zomwe zimasunga nthawi. kuchepetsa cheke kumaseva okhawo omwe deta imachotsedwa mwachindunji. Mwachitsanzo, poyesa pamakina omwe ali ndi zosungiramo zambiri zomwe zimatsatiridwa, kupatula maulalo onse kupatula omwe adatumizidwa ku seva yomwe mukufuna $remote idachepetsa kuchitidwa kwa git fetch kuchokera mphindi 20 mpaka masekondi 30. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/akutali/$kutali \ kutengera $kutali
  • Lamulo la "git fsck" limapereka kuthekera kowona ngati ziphuphu, kutsata kwa checksum, ndi kulondola kwamitengo mu ma bitmaps opezeka ndi ma index obwerera.
  • Lamulo la "git clone --local" tsopano likuwonetsa cholakwika poyesa kukopera kuchokera kunkhokwe yomwe ili ndi ma symlink mkati mwa $GIT_DIR.

Source: opennet.ru

Kuwonjezera ndemanga