Paar päeva tagasi teatati Git 2.50 projekti uue versiooni avaldamine, tutvustades enam kui 600 muudatust mida juhtis aktiivne kogukond, kuhu seekord kuulus 98 arendajat, sealhulgas 35 uut kaastöölist.
Git 2.50 uue versiooni eripäraks on uute käskude (git-diff-pairs) integreerimine, uued funktsioonid puhastamiseks, filtreerimiseks ja hooldamiseks, rekursiivse ühendamismootori asendamine ORT-ga, samuti jõudluse täiustused ja veaparandused.
Git 2.50 Peamised uued funktsioonid
Git 2.50 uues versioonis on üks olulisemaid uusi funktsioone nn "kruuspakkide" ravi optimeerimine, See tähendab objektide pakette, millele harud või sildid ei viita või millele need pole ligipääsmatud. Traditsiooniliselt salvestas Git need objektid ühte suurde paketifaili, mis võis paljude selliste üksustega repositooriumide ümberpakendamisel jõudlusprobleeme põhjustada.
Uue versiooniga Git võimaldab teil jagada need cruft-paketid mitmeks väiksemaks failiks, mis vähendab ketta kasutamist ja parandab sisend-/väljundjõudlust hulgitoimingute puhul. Lisaks sja sisestage suvand –combine-cruft-below-size, mis võimaldab kombineerige väikesed paketid üheks paindlikumaks kui eelmine –max-cruft-size valik, ilma et see piiraks ühendatud failide suurust. See uus funktsioon on eriti kasulik projektides, kus orvuks jäänud objektid on hajutatud mitme paketi vahel.
Teine suuremahulistele hoidlatele suunatud täiustus on eksperimentaalne tugi järkjärguline värskendus MIDX indeksid , mis salvestada objektide kohta teavet eraldi kihtides bitmap-failide kasutamine, mis võimaldab kiiremaid värskendusi uute muudatuste lisamisel. See edasiminek on kriitilise tähtsusega suurte repositooriumide jaoks, mis vajavad kiireid indekseerimistoiminguid ilma metaandmeid täielikult uuesti loomata.
Rekursiivse liitmismootori täielik asendamine ORT-ga
Git 2.50 toob kaasa olulise muudatuse rekursiivse termotuumasünteesi mootori püsiv eemaldamine traditsiooniline. Selle asemel ORT kasutamine on konsolideeritud, Üks moodsam, hooldatavam ja tõhusam termotuumasünteesimootor. ORT mitte ainult ei paku täpsemat konfliktianalüüsi, vaid võimaldab teil ka kontrollida, kas ühendamine on võimalik ilma täiendavaid objekte genereerimata. Lisaks sisaldab merge-tree käsk nüüd valikut –quiet, mida saab kasutada vaikse ühendamise kontrollijana ilma repositooriumi muutmata.
gitt-diff-pairs: lahendus skaleeritavuse probleemidele
Koodiülevaade on kahtlemata üks tänapäevase koostööl põhineva arenduse alustalasid ning revisjonide vahelised erinevused või lahknevused mängivad selles protsessis olulist rolli. Git 2.50 tulekuga on kasutusele võetud skaleeritavust silmas pidav lahendus: uus käsk git-diff-pairs.
Traditsiooniliselt kasutatakse kahe versiooni võrdlemiseks käsku, näiteks:
git diff HEAD~1 HEAD
See genereerib täieliku paranduse, mis sisaldab kõiki loetletud versioonide vahelisi muudatusi. Kuigi see on paljudel juhtudel tõhus, võib see olla jõudlusprobleemiks suurte muudetud failide komplektide käsitlemisel.
Seepärast loodi git-diff-pairs spetsiaalselt nii, et see võtaks vastu toorandmeid otse git diff-tree väljundist ning genereeriks vastavad parandused tõhusalt ja täpselt.
Kasutamine on sama lihtne kui:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
See käsk võtab antud blob-paarid ja genereerib täpse erinevusväljundi, säilitades kontekstuaalse teabe ja võimaldades töö jagamist väiksemateks partiideks. See avab ukse paralleelsele töötlemisele, parandab ressursitõhusust ja hõlbustab skaleeritavust erinevuspõhistes tööriistades, näiteks GitLabis.
Uued funktsioonid puhastamiseks, filtreerimiseks ja hoolduseks
Git 2.50 sisaldab mitmeid täiendavaid tööriistu, mis on loodud hoidla hoolduse parandamiseks:
- Käsk on lisatud giti reblogi tilk, mis võimaldab teil konkreetse haru reblogi täielikult kustutada, mis on ideaalne tööajaloo puhastamiseks, kui te ei pea enam varasemaid viiteid säilitama.
- Valik –filter cat-file –batch on nüüd gitis saadaval, mis võimaldab tulemusi objektitüübi järgi filtreerida.
Lisaks on esile tõstetud ka mitu sisemist optimeerimist:
- Sümboolsete linkide täiustatud kasutamine eesliidete vahemällu salvestamise ja üleliigsete kontrollide vähendamisega.
- Perli sõltuvuste eemaldamine dokumentatsioonist ja testiskriptidest, asendades need shellifunktsioonide või C-implementatsioonidega, muutes need minimalistlike konfiguratsioonidega süsteemides kompileerimise lihtsamaks.
- Sealhulgas kontroller kasutaja erinevus .ini-failide erinevuste analüüsimiseks.
- git send-email käsu täiustatud ühilduvus SMTP-serveritega (nt Outlook).
Lõpuks, kui soovite selle kohta rohkem teada saada, vaadake üksikasju jaotisest järgmine link.