- MIDX-free Cruft-free: habdhaqan dib-u-xirfadeed cusub oo lagu daray dib-u-qaadis.MIDXMustContainCruft waxay soo saartaa tusmooyinka xirmooyinka badan ee ka yar, dhaqso badan.
- Xirmooyinka-socod-socodka: Habka--socodka-socodka badanaa waxay abuurtaa xirmo aad u yaryar oo leh waqtiyo tartan ah.
- Isbeddelka is-beddelka: dhoofinta/la soo dejinta kaydka gelinta iyada oo loo marayo refs si loogu wareejiyo shaqada si badbaado leh inta u dhaxaysa mishiinnada.
- Qalabaynta & khariidad waddo: faylka bisadaha oo la hagaajiyay iyo filtarrada Bloom; beddelka/soo celinta xasiloon; u diyaargarow Git 3.0 (SHA-256, dib loo celin karo).

Tag 2.51 hadda waa la heli karaa, oo keenaya qaab-dhismeedka ballaadhan iyo hagaajinta isticmaalka oo ay ka qaybqaateen in ka badan 91 horumariyeyaal, oo ay ku jiraan 21 wax ku darsaday markii ugu horreysay. Siideyntani waxay diiradda saaraysaa waxtarka kaydinta, akhrinta degdega ah ee kaydadka waaweyn, iyo siyaabaha ugu wanagsan ee loo dhaqaajiyo shaqada-horumarka ee mashiinada iyada oo aan la dhex boodin hoops.
Mawduucyada muhiimka ah waxaa ka mid ah tusmooyinka xirmo-badan ee bilaa-jeexjeexa, baakadaha socod-socodka cusub, iyo qaabka beddelka. Waxa kale oo aad heli doontaa horumar joogto ah oo ku wajahan khaladaadyada qarsoodiga ah ee xooggan (SHA-256) iyo isbeddellada mustaqbalka ee loo qorsheeyay Git 3.0, oo lagu daray nadiifinta saxda ah ee tuubooyinka maalinlaha ah iyo dhoobada.
Tusmooyinka xidhmo-badan ee bilaa-curof-la'aanta ah

Kaydadka waaweyni waxay ku tiirsan yihiin baakadaha iyo MIDX (tusmooyinka baakadaha badan) si ay si dhakhso ah u xalliyaan walxaha. Taariikh ahaan, walxaha aan la gaadhi karin waxay ku soo degeen "baakado qolof ah" waxaana loogu talagalay inay ka fogaadaan MIDX. Laakiin haddii shay aan mar la gaadhi karin uu hadhow noqdo mid la gaadhi karo oo uu ku fadhiisto baakidh jajaban oo keliya, waxay jebin kartaa malo-awaalka khariidadda oo hoos u dhigi karta arrimaha.
Git 2.51 waxay wax ka beddeshaa sida baakadaha aan qallafsaneyn loo dhisayInta lagu jiro dib-u-xirashada, Git waxay hadda hubisaa in shayada koobiga kale ee kaliya ee ku jira baakidh-qoritaan lagu koobi karo kuwa aan qolof ahayn, taasoo ka dhigaysa in la xidho iyada oo la gaadhi karo. Ficil ahaan, tani waxay awood u siineysaa tusmooyinka xirmo badan oo yaryar oo dhakhso badan iyada oo aan la hurin saxnaanta.
Qaabeyn cusub, dib u xirxirid.MIDXMustContainCruft, ayaa dhaqaajisa istaraatiijiyadan, Ku kaydinta baakadaha qolofka ah ee ka baxsan MIDX iyadoo si degdeg ah loo eegayo. GitHub ayaa ka warbixisay guulo la taaban karo oo ka soo baxay habkan monorepo weyn: Cabbirka MIDX wuxuu hoos u dhacay ~ 38%, wuxuu qoray ~ 35% dhaqso, iyo waxqabadka akhrinta ayaa horumariyey ilaa 5%.
Haddii monorepo MIDX kaaga koray mid aan caqli-gal ahayn, isku day in aad dib ugu xidhato goobta cusub oo cabbir eegid iyo faa'iidada marinka ee CI-gaaga iyo socodka shaqada horumariyaha.
Baakado yaryar oo leh dariiq socod

Doorashada deltas wanaagsan waa wadnaha xirmooyinka xirmooyinka. Siidaynta hore waxay soo bandhigtay magac-hash oo dib loo eegay si loo hagaajiyo lammaanaynta delta, laakiin Git 2.51 waxay ku sii socotaa habka "dariiqa socodka" kaas oo kooxeeya oo sii daaya dhammaan shay kasta oo isku mid ah, isaga oo ka gudbaya magaca-hash heuristics gebi ahaanba.
Meelo badan oo kayd ah, socodka dariiqa ayaa soo saara baakado aad u yaryar adigoo tartan kula jira wakhtiga runtime iyo hab-socodka dib-u-eegista dhaqameed. Waxay si gaar ah waxtar u leedahay marka aad haysato noocyo badan oo faylal isku mid ah oo ku kobcaya wadooyin joogto ah.
Si aad u tijaabiso marka dib loo baakadeeyo, isticmaal ikhtiyaarka cusub ee alaabta baakadaha: --path-walk. Kooxaha u riixaya cabbirrada xirmooyinka ilaa xadka, tani waxay yarayn kartaa isku-beddelka shabakadda iyo kaydinta maxalliga ah hal mar.
Qaabka is beddelka
U guurista meelaha isku-xidhka ah ee mishiinnada dhexdooda waxay ahayd wax laga xumaado sababtoo ah fal-dambiyeedyada qashinka ah waxay ku qarsoon yihiin hal gadaashiisa refs/stash. Git 2.51 waxa uu soo bandhigayaa kala duwanaansho u dhiganta gelisyo badan oo fadhiid ah sida isku xigxiga fal-dambiyeedyo isku xidhan, marka waxay u dhaqmaan in ka badan sida log-ga caadiga ah.
Naqshadeyntaas, waxaad ku dhoofin kartaa oo aad ku soo dejisan kartaa qashinka adigoo isticmaalaya tixraacyo caadi ah, riix ama soo hel sida laamo ama calaamado, oo ilaali shaqada ka socota deegaanka oo dhan iyada oo aan lahayn balastar- ad-hoc ama daamur.
Tusaale socodka shaqada si loo wadaago kaydka:
$ git stash export --to-ref refs/stashes/my-stash
$ git push origin refs/stashes/my-stash
# On another machine
$ git fetch origin '+refs/stashes/*:refs/stashes/*'
$ git stash import refs/stashes/my-stash
Habkani wuxuu ka dhigayaa shaqadaada xoqan mid habaysan oo la hubin karo, gaar ahaan qalabyada isdhaafsan ama marka aad WIP u dhiibayso saaxiibkiis.
Tuubooyinka fiiqan iyo ergonomics maalin kasta
bisad-faylka ayaa sii caqli badan Qaababka dufcaddii: marka la waydiiyo dariiqa-hoosaadka, 2.51 ka hor dhismayaashu waxay soo noqdaan "maqan". Git 2.51 hadda waxay si faa'iido leh uga warbixisay nooca shayga (tusaale, "submodule"), kaas oo caawiya qoraallada u baahan inay sabab uga dhigaan waxa ku jira kaydinta cabbir ahaan.
Shaandhooyinka ubaxa ee la beddelay hadda waxay kaa caawinayaan wadooyin badan (tusaale ahaan, git log -- a b), balaadhinta kiisaska ay tariikhdu ka boodi karto ballanqaadyada si kalsooni leh. Taasi waa kobcinta xawaaraha la taaban karo ee dib u eegista guud iyo qaababka baaritaanka.
git switch iyo git soo celinta qalin jebinta tijaabada. Loo soo bandhigay si ka sii cad, ujeedo loo dhisay beddelka doorka badan git checkout, CLI-gooda hadda waxaa loo arkaa mid xasiloon oo horay loo socdo.
git waxa bedelay waa laga saaray waxaana loo qorsheeyay in laga saaro Git 3.0. Haddii aad weli ku tiirsan tahay, waxay ahaanaysaa mid la wici karo gadaasha kuwa sida saxda ah loo magacaabay --i-still-use-this calan markaad u tahriibto git log --raw.
Dhanka Git 3.0: khaladaadka iyo isbeddelada jebinta la tijaabin karo
Mashruucu wuxuu sii wadaa u diyaargarowga SHA-256 iyo dib-u-celinta tixraaca ee dib loo celin karo si ay u noqoto mid aan dhicin gudaha Git 3.0. Gudaha Git 2.51, bakhaarada ayaa wali lagu abuuray SHA-1 si caadi ah, laakiin tuubooyin badan oo gudaha ah ayaa fahma SHA-256, fududaynta tijaabinta iyo shaqada isdhexgalka.
Haddii aad rabto muuqaal horudhac ah ee berrito, waxaad ku dhisi kartaa WITH_BREAKING_CHANGES in la isku dayo dhaqamada soo socda ee deegaanada la xakameeyey. Bixiyeyaasha martigelinaya iyo qorayaasha qalabaynta ayaa tan u isticmaali kara kiisaska cidhifyada ka hor beddelka weyn.
Labada gool ayaa weli cad: xooji saldhigga cryptographic iyo casriyeynta tixraacyada, iyadoo la ilaalinayo ku-habboonaanta gadaal u ah nidaamka deegaanka ee ballaaran ee lagu dhisay fikradaha Git ee hadda.
Cusboonaysiinta luqadda iyo habka
Dhinaca fulinta, korsashada C99 ayaa si habaysan u socota. Mashruucu hadda wuu ogolyahay bool ereyga muhiimka ah inta lagu jiro codebase iyo dukumentiyada astaamaha C99 lagu isticmaalo ama lagu qiimeeyo, iyada oo maskaxda lagu hayo la qaadida matrix-sameeyaha ballaaran.
Tilmaamaha wax ku biirinta waxay heleen cusboonaysiin loo dhan yahay: balastar mar dambe maaha in lagu soo gudbiyo magaca sharciga ah ee ka qaybqaataha, iyadoo la waafajinayo siyaasada Git si aad ugu dhow kernel Linux iyo taageero bixiyayaasha doorbidaya aqoonsiyo kale.
Sida loo tijaabiyo astaamaha cinwaanka maanta
Daar istiraatijiyadda MIDX-ka-yar si loo khafiifiyo tusmooyinka baakadaha badan iyo xawaaraha akhriya:
$ git config --global repack.MIDXMustContainCruft true
$ git gc --cruft --aggressive
Dib ugu soo xidhid socod waddo si loo qiimeeyo cabbirka xirmada iyo kala duwanaanshaha runtime:
$ git repack -ad
$ git pack-objects --path-walk --revs --stdout < .git/objects/pack/pack-list.txt > new.pack
La wadaag mashiinnada oo dhan oo wata amar-hoosaadyada dhoofinta/soo dejinta cusub:
$ git stash export --to-ref refs/stashes/feature-wip
$ git push origin refs/stashes/feature-wip
Dhammaantood waa la sheegay, Git 2.51 waa sii dayn kobcin ah oo bixisa isticmaalka maalinlaha ah: dhakhso badan, maaraynta shayga caatada ah; horumarin wax ku ool ah oo ku saabsan qorista iyo weydiimaha taariikhda; qulqulka shaqada ee nadiifka ah; iyo horumarka joogtada ah ee dhanka Git 3.0 era halkaas oo SHA-256 iyo dib u habeyn lagu samayn karo ay noqdaan caadi.