Prieš kelias dienas buvo paskelbta Išleista nauja „Git 2.50“ projekto versija, pristato daugiau nei 600 pakeitimų skatinama aktyvios bendruomenės, kurią šį kartą sudarė 98 kūrėjai, įskaitant 35 naujus bendradarbius.
Ši nauja „Git 2.50“ versija išsiskiria naujų komandų („git-diff-pairs“) integracija, naujomis valymo, filtravimo ir priežiūros funkcijomis, rekursinio sujungimo variklio pakeitimu ORT, taip pat našumo patobulinimais ir klaidų ištaisymais.
„Git 2.50“ pagrindinės naujos funkcijos
Šioje naujoje „Git 2.50“ versijoje viena iš svarbiausių naujų funkcijų yra vadinamųjų „kruftpakų“ gydymo optimizavimas, Tai yra, objektų paketai, kurie yra nepasiekiami arba į kuriuos nenurodo šakos ar žymės. Tradiciškai „Git“ šiuos objektus saugojo viename dideliame paketo faile, todėl perpakuojant saugyklas su daugeliu šių elementų, galėjo kilti našumo problemų.
Su nauja versija, „Git“ leidžia padalinti šiuos „cruft“ paketus į kelis mažesnius failus, o tai sumažina disko naudojimą ir pagerina įvesties / išvesties našumą atliekant masines operacijas. Be to, sir įveskite parinktį –combine-cruft-below-size, kuri leidžia lanksčiau sujungti mažus paketus į vieną nei ankstesnė „-max-cruft-size“ parinktis, neribojant bendro failų dydžio. Ši nauja funkcija ypač naudinga projektuose su našlaičiais objektais, išsibarsčiusiais po kelis paketus.
Kitas patobulinimas, skirtas didelio masto saugykloms, yra eksperimentinė parama laipsniškas atnaujinimas MIDX indeksai , kuris saugoti informaciją apie objektus atskiruose sluoksniuose naudojant bitmap failus, kurie leidžia greičiau atnaujinti duomenis, kai pridedami nauji pakeitimai. Šis patobulinimas yra labai svarbus didelėms saugykloms, kurioms reikalingos greitos indeksavimo operacijos, nereikalaujant visiškai atkurti metaduomenų.
Visiškas rekursinio sujungimo variklio pakeitimas ORT
„Git 2.50“ pristato didelį pakeitimą, susijusį su visam laikui pašalinti rekursinį sintezės variklį tradicinis. Vietoj to, ORT naudojimas yra konsoliduotas, Vienas modernesnis, lengviau prižiūrimas ir efektyvesnis branduolių sintezės variklis. ORT ne tik siūlo tikslesnę konfliktų analizę, bet ir leidžia patikrinti, ar sujungimas įmanomas negeneruojant papildomų objektų. Be to, komandoje „merge-tree“ dabar yra parinktis „–quiet“, kurią galima naudoti kaip tylų sujungimo tikrintuvą nekeičiant saugyklos.
„gitt-diff-pairs“: mastelio keitimo problemų sprendimas
Kodo peržiūra neabejotinai yra vienas iš šiuolaikinio bendradarbiavimo pagrindu sukurto kodo kūrimo ramsčių, o skirtumai tarp versijų vaidina svarbų vaidmenį šiame procese. Atsiradus „Git 2.50“, buvo pristatytas sprendimas, skirtas mastelio keitimui: nauja komanda „git-diff-pairs“.
Tradiciškai, norint palyginti dvi versijas, naudojama tokia komanda:
git diff HEAD~1 HEAD
Tai sukuria visą pataisą, kurioje yra visi pakeitimai tarp išvardytų versijų. Nors daugeliu atvejų tai veiksminga, gali būti našumo problema dirbant su dideliais modifikuotų failų rinkiniais.
Štai kodėl „git-diff-pairs“ buvo specialiai sukurtas taip, kad gautų neapdorotą įvestį tiesiai iš „git diff-tree“ išvesties ir efektyviai bei tiksliai generuotų atitinkamus pataisymus.
Naudojimas yra toks paprastas:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Ši komanda, naudodama pateiktas „blob“ poras, sugeneruoja tikslią skirtumo išvestį, išsaugodama kontekstinę informaciją ir leisdama darbą suskirstyti į mažesnes partijas. Tai atveria duris lygiagrečiam apdorojimui, pagerina išteklių efektyvumą ir palengvina mastelio keitimą skirtumo pagrindu sukurtose priemonėse, tokiose kaip „GitLab“.
Naujos valymo, filtravimo ir priežiūros funkcijos
„Git 2.50“ apima keletą papildomų įrankių, skirtų saugyklų priežiūrai pagerinti:
- Komanda buvo pridėta git reflog kritimas, kuri leidžia visiškai ištrinti konkrečios šakos reflogą, idealiai tinka norint išvalyti darbo istoriją, kai nebereikia tvarkyti ankstesnių nuorodų.
- Pasirinkimas –filtras „cat-file –batch“ dabar pasiekiama „git“ sistemoje, todėl galite filtruoti rezultatus pagal objekto tipą.
Be to, pabrėžiami keli vidiniai optimizavimai:
- Patobulintas simbolinių nuorodų naudojimas, kaupiant prefiksus talpykloje ir sumažinant nereikalingų patikrinimų skaičių.
- Perl priklausomybių pašalinimas dokumentacijoje ir testavimo scenarijuose, pakeičiant jas apvalkalo funkcijomis arba C įgyvendinimais, kad jas būtų lengviau kompiliuoti sistemose su minimalistinėmis konfigūracijomis.
- Įskaitant valdiklį vartotojo skirtumas .ini failų skirtumų analizei.
- Patobulintas „git send-email“ komandos suderinamumas su SMTP serveriais, tokiais kaip „Outlook“.
Galiausiai, jei norite sužinoti daugiau apie tai, galite peržiūrėti išsamią informaciją sekanti nuoroda.