Ilang araw na ang nakalipas , inanunsyo ang paglabas ng bagong bersyon ng Git 2.3 , isa sa pinakasikat, maaasahan, at mataas na pagganap na mga sistema ng pagkontrol ng bersyon, na nagbibigay ng mga nababaluktot na non-linear na tool sa pag-develop batay sa branching at merging.
Kung ikukumpara sa nakaraang bersyon, 679 na pagbabago ang pinagtibay sa bagong bersyon, na inihanda kasama ang partisipasyon ng 85 developer , 23 sa kanila ang unang beses na lumahok sa pagbuo.
Mga highlight ng Git 2.31
Tampok sa bagong bersyong ito ng Git 2.31 ang pagdaragdag ng utos na "git maintenance" , na nagbibigay-daan para sa pana-panahong pagpapanatili sa mga sistemang hindi sumusuporta sa cron . Halimbawa, gamit ang bagong utos na ito, maaari mong iiskedyul ang proseso ng pag-iimpake ng repositoryo upang magsimula nang pana-panahon, na inaalis ang pangangailangang maghintay para makumpleto ang pag-lock ng repositoryo kapag awtomatikong isinasagawa ang pag-iimpake pagkatapos maisagawa ang maraming utos.
Isa pang kapansin-pansing pagbabago ay ang pagdaragdag ng suporta para sa pagpapanatili ng isang reverse index sa disk (revindex) para sa mga package file. Iniimbak ng Git ang lahat ng data bilang mga object, na itinatago sa magkakahiwalay na mga file. Upang mapabuti ang kahusayan ng pagtatrabaho sa repository, ang mga object na ito ay higit pang inayos sa mga package file, kung saan ang impormasyon ay ipinapakita bilang isang stream ng mga object na sumusunod sa isa't isa.
Para sa bawat archive ng package, isang index file (.idx) ang ginagawa, na nagbibigay-daan sa object identifier na magamit upang mabilis na matukoy ang offset sa loob ng package archive kung saan nakaimbak ang object. Ang reverse index (.rev) na iminungkahi sa Git 2.31 ay naglalayong i-optimize ang proseso ng pagtukoy ng object identifier mula sa impormasyon tungkol sa lokasyon ng object sa loob ng package archive.
Dati, ang conversion na ito ay isinasagawa nang walang tigil habang pina-parse ang isang package file at iniimbak lamang sa memorya, na hindi nagpapahintulot sa muling paggamit ng mga index na ito at nangailangan ng pagbuo ng index sa bawat pagkakataon. Ang operasyon ng pagbuo ng isang index ay nababawasan sa pagbuo ng isang array ng mga pares ng posisyon ng object at pag-uuri ng mga ito ayon sa posisyon, na maaaring maging lubhang matagal para sa malalaking package file.
Bukod pa rito, matutuklasan natin na ang mga pag-optimize sa pagganap batay sa hitsura ng format ng commit graph file ay naidagdag , na ginagamit upang ma-optimize ang pag-access sa impormasyon tungkol sa mga commit, at mga bagong datos sa bilang ng mga commit na nabuo, na maaaring gamitin upang mapabilis ang mga karagdagang operasyon gamit ang mga commit.
Bukod pa rito, idinagdag ang kakayahang i-override ang default na pangalan ng branch sa mga bagong repositoryo (init.defaultBranch setting). Kapag ina-access ang mga external repositoryo, sinusubukan ng Git na beripikahin ang branch na tinuturo ng HEAD; ibig sabihin, kung ang external server ay gumagamit ng "main" branch bilang default, susubukan ng operasyong "git clone" na hanapin ang "main" nang lokal.
Kabilang sa iba pang kapansin-pansing mga pagbabago ang:
- Ang pagpipiliang "–disk-use" naidagdag sa "git rev-list" na utos upang ipakita ang isang buod ng laki ng mga bagay.
- Ang suporta para sa hindi na ginagamit na regular na expression ng library ng PCRE1 ay tinanggal.
- Nagbigay ng kakayahang pilit na ipinagbabawal ang paggamit ng mga shortcut, kumikilos nang nakapag-iisa ng hashing algorithm. Ang pagbabawal ay pinagana sa pamamagitan ng pagtatalaga ng halagang "hindi" sa parameter ng core.abbrev.
- Ang pagpipiliang "–path-format" ay naidagdag sa utos na "git rev-parse" upang malinaw na tukuyin ang output ng kamag-anak o ganap na mga landas.
- Ginagawa ng mga autocomplete script ng Bash na madali upang magdagdag ng mga panuntunan sa pagkumpleto para sa mga pasadyang "git" na subcommand.
- Nagdagdag ng pagpipiliang "–stdin" upang "git bundle" na utos upang basahin ang mga link mula sa karaniwang stream ng pag-input.
- Ang mga pagpipiliang "–kaliwang-kaliwa" at "-kanan lamang" ay naidagdag sa utos na "git range-diff" upang maipakita lamang ang isang bahagi ng kumpara sa saklaw.
- Nagdagdag ng pagpipiliang "–skip-to = »Sa« git difftool »utos na ipagpatuloy ang isang nagambalang session mula sa isang di-makatwirang landas.
- Ang Code of Conduct (Code of Conduct), na tumutukoy sa mga pangunahing prinsipyo para sa paglutas ng mga salungatan sa pagitan ng mga developer, ay na-update sa bersyon 2.0 (dating bersyon 1.4 ang ginamit).
Panghuli, kung nais mong matuto nang higit pa tungkol dito , maaari mong tingnan ang sumusunod na link.