Pak ditë më parë u bë e ditur Publikimi i versionit të ri të projektit Git 2.50, duke prezantuar më shumë se 600 ndryshime i nxitur nga një komunitet aktiv që këtë herë përfshinte 98 zhvillues, përfshirë 35 kontribues të rinj.
Ky version i ri i Git 2.50 dallohet nga integrimi i komandave të reja (git-diff-pairs), funksionet e reja për pastrim, filtrim dhe mirëmbajtje, zëvendësimi i motorit rekursiv të bashkimit me ORT, si dhe përmirësimet e performancës dhe rregullimet e gabimeve.
Git 2.50 Karakteristikat kryesore të reja
Në këtë version të ri të Git 2.50, një nga veçoritë më të rëndësishme të reja është optimizim në trajtimin e të ashtuquajturave "pako të vogla", Domethënë, paketa objektesh që janë të paarritshme ose që nuk referohen nga degët ose etiketat. Tradicionalisht, Git i ruante këto objekte në një skedar të vetëm pakete të madh, gjë që mund të shkaktonte probleme me performancën gjatë ripaketimit të depove me shumë nga këto artikuj.
Me versionin e ri, Git ju lejon të ndani këto pako cruft në disa skedarë më të vegjël., gjë që zvogëlon përdorimin e diskut dhe përmirëson performancën e të dhënave hyrëse/dalëse për operacionet me shumicë. Përveç kësaj, sdhe futni opsionin –combine-cruft-below-size, e cila lejon kombinoni paketat e vogla në një në mënyrë më fleksibile sesa opsioni i mëparshëm –max-cruft-size, pa vendosur një limit në madhësinë e kombinuar të skedarit. Kjo veçori e re është veçanërisht e dobishme në projekte me objekte jetime të shpërndara në paketa të shumëfishta.
Një përmirësim tjetër që synon depot në shkallë të gjerë është mbështetje eksperimentale për përditësimi gradual i Indekset MIDX , e cila Ato ruajnë informacion rreth objekteve në shtresa të ndara duke përdorur skedarë bitmap, gjë që lejon përditësime më të shpejta ndërsa shtohen commit-e të reja. Ky përparim është kritik për depot e mëdha që kërkojnë operacione të shpejta indeksimi pa pasur nevojë të rindërtohen plotësisht meta të dhënat.
Zëvendësim i plotë i motorit të bashkimit rekursiv me ORT
Git 2.50 prezanton një ndryshim të madh me heqja e përhershme e motorit rekursiv të shkrirjes tradicionale. Në vend të kësaj, përdorimi i ORT është i konsoliduar, Një motor shkrirjeje më modern, i mirëmbajtur dhe efikas. ORT jo vetëm që ofron një analizë më të saktë të konfliktit, por gjithashtu ju lejon të verifikoni nëse një bashkim është i mundur pa gjeneruar objekte shtesë. Për më tepër, komanda merge-tree tani përfshin një opsion –quiet për përdorim si një kontrollues bashkimi i heshtur pa modifikuar depozitën.
gitt-diff-pairs: zgjidhja për problemet e shkallëzueshmërisë
Rishikimi i kodit është padyshim një nga shtyllat e zhvillimit bashkëpunues modern, dhe ndryshimet ose ndryshimet midis versioneve luajnë një rol të rëndësishëm në këtë proces. Me mbërritjen e Git 2.50, është prezantuar një zgjidhje e projektuar për shkallëzueshmëri: komanda e re git-diff-pairs.
Tradicionalisht, për të bërë një krahasim midis dy versioneve, përdorni një komandë si:
git diff HEAD~1 HEAD
Kjo gjeneron një patch të plotë që përmban të gjitha ndryshimet midis versioneve të listuara. Ndërsa është efektiv në shumë raste, mund të jetë një problem performance kur merreni me grupe të mëdha skedarësh të modifikuar.
Kjo është arsyeja pse git-diff-pairs është projektuar posaçërisht për të marrë të dhëna të papërpunuara direkt nga dalja e git diff-tree dhe për të gjeneruar patch-et përkatëse në mënyrë efikase dhe të saktë.
Përdorimi është aq i thjeshtë sa:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Kjo komandë merr çiftet e dhëna të blob-eve dhe gjeneron rezultatin e saktë të diff-it, duke ruajtur informacionin kontekstual dhe duke lejuar që puna të ndahet në grupe më të vogla. Kjo hap derën për përpunim paralel, përmirëson efikasitetin e burimeve dhe lehtëson shkallëzueshmërinë në mjetet e bazuara në diff si GitLab.
Karakteristika të reja për pastrim, filtrim dhe mirëmbajtje
Git 2.50 përfshin disa mjete shtesë të dizajnuara për të përmirësuar mirëmbajtjen e depove:
- Komanda është shtuar git reflog drop, e cila ju lejon të fshini plotësisht reflog-un për një degë specifike, ideale për pastrimin e historikut të punës kur nuk keni më nevojë të mirëmbani referencat e mëparshme.
- Opsioni –filtër cat-file –batch tani është i disponueshëm në git, duke ju lejuar të filtroni rezultatet sipas llojit të objektit.
Përveç kësaj, theksohen edhe disa optimizime të brendshme:
- Përdorim i përmirësuar i lidhjeve simbolike, me ruajtje në memorje të prefikseve dhe reduktim të kontrolleve të tepërta.
- Heqja e varësive të Perl në dokumentacion dhe skripte testimi, duke i zëvendësuar ato me funksione shell ose implementime C, duke i bërë ato më të lehta për t'u kompajluar në sisteme me konfigurime minimaliste.
- Përfshirë një kontrollues ndryshimi i përdoruesit për analizën e ndryshimeve në skedarët .ini.
- Përmirësim i përputhshmërisë së komandës git send-email me serverët SMTP si Outlook.
Së fundi, nëse jeni të interesuar të dini më shumë rreth tij, mund të konsultoni detajet në lidhja vijuese.