KĂ€esolev vĂ€ljaanne distributeeritud lĂ€htekoodihalduse sĂŒsteemi Git 2.50. Git paistab silma kĂ”rge jĂ”udlusega ning pakub mittelineaarse arenduse vahendeid, mis pĂ”hinevad harude loomisel ja ĂŒhendamisel. Ajaloo terviklikkuse ja tagasisuunamiste muutuste vĂ€ltimise tagamiseks kasutatakse igas commitis kogu eelneva ajaloo vaikimist, samuti on erinevate siltide ja commitide autentimine digitaalsete allkirjade kaudu. Git'i kood levitatakse GPLv2+ litsentsi alusel.
VÔrreldes eelmise vÀljaandega on uues versioonis vastu vÔetud 621 muudatust, mille koostamises osales 98 arendajat, kellest 35 osaleb arenduses esmakordselt. Peamised uuendused:
- On laiendatud vĂ”imalusi jagada mitmeks pack-failiks kĂ€tte saamatute objektide andmebaasi («cruft packs»), millele ei viita repo (sellest ei viita harud ega sildid). Mitme vĂ€ikese pack-faili kasutamine ĂŒhe suure asemel vĂ€hendab oluliselt sisend-/vĂ€ljundoperatsioonide arvu suurte kĂ€tte saamatu objektide arvu korral, kuna iga ĂŒmberpakendamise operatsiooni korral ei pea uuesti kirjutama kogu andmestikku.
Uues versioonis on lisatud valik «âcombine-cruft-below-size», mille abil saab korraldada olemasolevate pack-failide ĂŒhendamist, mille suurus ei ĂŒleta mÀÀratud vÀÀrtust. Erinevalt varem saadaval olnud valikust «âmax-cruft-size» ei piira uus valik «âcombine-cruft-below-size» tulemuseks oleva pack-faili maksimaalset suurust, mis vĂ”imaldab tĂ”husamalt ĂŒhendada pack-failid suurte kĂ€tte saamatu objektide hulkadega, mis on jaotatud mitmeks pack-failiks.
- Lisatud on eksperimentaalne toe inkreetse uuenduse jaoks mitme pack-faili indeksite MIDX (multi-pack index) jaoks, kus iga MIDX-indeksi kiht, mis sisaldab teavet objektide kĂ€tte saadavuse kohta, on paigutatud eraldi bitmap-faili. VĂ€ga suurte repode korral pakub rakendatud indeksite tĂŒĂŒp vĂ”imalusi uute objektide kĂ€tte saadavuse bitikaartide kiireks ja tĂ”husaks lisamiseks, kui commitid saabuvad.
- Koodibaasist on eemaldatud vana liitmisprotsessi mootori "recursive", mille asemel on tĂ€ielikult ĂŒmber töötatud mootori "ORT" (Ostensibly Recursiveâs Twin), mis on tĂ”husam, funktsionaalsem ja hooldamise osas mugavam. ORT vĂ”imaldab mÀÀrata, kas kaht objekti saab ĂŒhendada, luues samal ajal uusi objekte repos (vana mootori puhul tuli kasutada kĂ€sku "git merge-tree âwrite-tree", mis salvestas uusi objekte reposse). Git 2.50-s on merge-tree kĂ€sus rakendatud valik "âquiet", mille korral saab liitmise vĂ”imalusi kontrollida tagastuskoode pĂ”hjal, ilma et andmeid repole kirjutataks.
- "git cat-file âbatch" ja sarnased kĂ€sud on saanud uue valiku "âfilter", mis vĂ”imaldab teatud objekte vahele jĂ€tta kĂ€itamisel. git cat-file âbatch-check='%(objectname)' âfilter='object:type=tree'
- "git maintenance" kÀsus on rakendatud kolm uut toimingut: worktree-prune, rerere-gc ja reflog-expire. Toiming worktree-prune on mÔeldud vanade vÔi rikutud tööpuude (worktrees) eemaldamiseks repos. Toiming rerere-gc kustutab vanad kirjed, mis on jÀÀnud pÀrast konfliktide likvideerimist. Toiming reflog-expire eemaldab vanad ligipÀÀsetavad objektid reflog'ist.
- Lisatud kÀsk "git reflog drop", mis kustutab kÔik reflog andmed mÀÀratud haru jaoks.
- Viidete töötlemise ja kasutamise optimeerimine on toimunud, nĂ€iteks on rakendatud viidete prefiksite vahemĂ€lu, eemaldatud ĂŒleliigsed tĂ”rkekontrollid kĂ€su "git update-ref" kĂ€itamisel ja parendatud olemasolevate viidete iteratsioonide otsimise efektiivsust.
- cURL raamatukogule on lisatud KeepAlive seaded: http.keepAliveIdle, http.keepAliveInterval ja http.keepAliveCount.
- "git rev-list" kĂ€sus on rakendatud vĂ”imalus vĂ€ljundi saamiseks masinloetavas formaadis, kus iga vĂ€li on eraldatud NUL sĂŒmboliga.
- Perli keel on eemaldatud dokumentatsiooni tööriistade ja testisarja («make test») jaoks vajalikest sĂ”ltuvustest. Paljud Perli ĂŒhekordsed skriptid testides on asendatud shelli funktsioonide vĂ”i kirjutatud C keeles.
- Lisatud userdiff töötleja konfiguratsioonifailide formaadi jaoks "ini".
- send-email kÀsus on parendatud Outlooki SMTP-serveri toetust.
Allikas: opennet.ru
