Pagkatapos ng dalawang buwan ng matinding trabaho, ang development community ng Ipinakilala ng Git ang bersyon ng Git 2.51, isang update na Pinagsasama-sama nito ang 506 na pagbabago, kung saan lumahok ang 91 developer, kung saan 21 ang nag-ambag sa unang pagkakataon.
Ang release na ito ay nagpapakilala ng mga pagpapahusay na idinisenyo upang pahusayin ang performance at pasimplehin ang pamamahala ng repositoryo, kabilang ang mga pag-optimize ng performance para sa git-push at git-fetch, pati na rin ang ilang pagbabagong patungo sa bagong 3.x branch.
Mga highlight ng Git 2.51
Isa sa mga highlight ng Git 2.51 ay ang Pag-optimize ng git push at git fetch command sa mga repository na may malaking bilang ng mga sanggunian. Ang susi sa pagpapabuti na ito ay nasa batch update, na nagpoproseso ng maraming link sa isang transaksyon sa halip na indibidwal.
Salamat sa pag-optimize na ito, Ang reftable na backend ay mas mahusay na ngayon sa tradisyonal na mga file backend.Sa mga pagsubok na may mga repositoryo na naglalaman ng hanggang 10 reference, ang git fetch performance ay tumaas ng 000x para sa reftable at 22x para sa mga file, habang ang git push ay bumuti ng 1.25x at 18x, ayon sa pagkakabanggit.
Ang isa pang mahalagang pagbabago ay ang iPagpapakilala ng tinatawag na cruft packages, idinisenyo upang mag-imbak ng mga bagay na hindi naa-access na hindi naka-link sa mga sanga o tag. Ang mga bagay na ito, na dating nakakalat, maaari na ngayong pamahalaan sa hiwalay na packagings, na ginagawang mas madaling kontrolin at binabawasan ang laki ng mga multi-package index (MIDX).
Sa bagong repack.MIDXMustContainCruft setting, iniiwasan ng Git na isama ang mga bagay na ito sa mga pangunahing indexSa mga pagsubok sa GitHub, binawasan ng configuration na ito ang laki ng index ng 38%, pinabilis ang pagsusulat ng 35%, at pinahusay ang pagbabasa ng 5%.
Bagong diskarte sa packaging ng bagay
El isinasama ng git pack-objects command ang –path-walk na opsyon, na nagpapakilala ng isang makabagong pamamaraan upang muling ayusin ang mga packaging file. Sa halip na iproseso ang mga bagay batay sa kanilang mga hash, maaari na ngayong umulit ang Git sa pamamagitan ng mga ito batay sa kanilang landas ng file, na pinagsama-sama ang mga nagbabahagi ng parehong lokasyon. Inaalis ng diskarteng ito ang pangangailangang mag-pre-sort ng mga bagay at magreresulta sa mas maliit, mas mahusay na mga packing file.
Sa bersyon na ito din Ang isang bagong format para sa pagpapalitan ng working tree states at mga index na ginawa gamit ang Git Stash ay na-standardize.. Posible na ngayong mag-export at mag-import ng mga stashes tulad ng mga branch o tag, na ginagawang mas madali ang paglipat ng mga estado mula sa isang system patungo sa isa pa.
Por ejemplo:
git stash export --to-ref refs/stashes/mi-stash git push origin refs/stashes/mi-stash git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/mi-stash
Mga pagpapabuti sa mga klasikong utos
ilang Nakatanggap ang mga utos ng Git ng mga nauugnay na update:
- Iniuulat na ngayon ng git cat-file ang mga nawawalang bagay at submodules, na nagpapakita ng mga identifier sa halip na markahan lamang ang "nawawala".
- Nakikinabang ang git log mula sa mga pag-optimize ng filter ng Bloom, na nagpapabilis sa mga paghahanap na may maraming landas ng file.
- Ang git switch at git restore command, na itinuturing na eksperimental mula noong 2019, ay sa wakas ay nagpapatatag bilang mga modernong alternatibo sa git checkout.
- Ang git whatchanged command, katumbas ng git log –raw, ay hindi na ginagamit at aalisin sa Git 3.0.
- Ang git for-each-ref ay tumatanggap ng –start-after na opsyon, na kasama ng –count ay nagbibigay-daan sa pagination ng output.
- Kasama na ngayon sa git merge at git pull ang –compact-summary na opsyon, na nagbibigay ng mas maigsi na format ng buod.
C99 na suporta at mga bagong panuntunan sa kontribusyon
Patuloy na iniangkop ng Git ang code nito sa mga katangian ng pamantayan ng C99. Bagama't kinakailangan ang isang katugmang compiler mula noong 2021, maingat na kumikilos ang mga developer upang mapanatili ang pagiging tugma sa mga compiler na bahagyang nagpapatupad nito.
Bilang karagdagan, isang makabuluhang pagbabago ang ipinakilala sa patakaran sa kontribusyon: Ang mga patch ay maaari na ngayong isumite sa ilalim ng isang pseudonym, isang desisyong naaayon sa mga panuntunan ng Linux kernel at idinisenyo upang mag-alok ng higit na kakayahang umangkop sa mga nag-aambag.
Inaasahan ang Git 3.0
El Na-update din ng development team ang roadmap sa Git 3.0., kung saan kapansin-pansin ang dalawang pangunahing pagbabago: ang default na paggamit ng SHA-256 bilang object identifier at ang pag-ampon ng reftable na format para sa pag-iimbak ng mga branch at tag reference. Ang mga pagpapahusay na ito ay naglalayong pagbutihin ang seguridad at kahusayan sa lalong malaki at kumplikadong mga repositoryo.
Fuente: https://lore.kernel.org