Pred nekaj dnevi je bilo objavljeno Izid nove različice projekta Git 2.50, uvaja več kot 600 sprememb ki ga je vodila aktivna skupnost, ki je tokrat vključevala 98 razvijalcev, vključno s 35 novimi sodelavci.
Ta nova različica Gita 2.50 se odlikuje po integraciji novih ukazov (git-diff-pairs), novih funkcijah za čiščenje, filtriranje in vzdrževanje, zamenjavi rekurzivnega mehanizma za združevanje z ORT, pa tudi po izboljšavah delovanja in popravkih napak.
Ključne nove funkcije Git 2.50
V tej novi različici Gita 2.50 je ena najpomembnejših novih funkcij optimizacija pri zdravljenju tako imenovanih "obkladkov" To pomeni pakete objektov, ki niso dostopni ali se nanje ne sklicujejo veje ali oznake. Tradicionalno je Git te objekte shranjeval v eni sami veliki datoteki paketa, kar je lahko povzročilo težave z zmogljivostjo pri ponovnem pakiranju repozitorijev s številnimi od teh elementov.
Z novo različico, Git vam omogoča, da te pakete nerazumljive vsebine razdelite na več manjših datotek, kar zmanjša porabo diska in izboljša vhodno/izhodno zmogljivost za množične operacije. Poleg tega sin vnesite možnost –combine-cruft-below-size, ki omogoča združite majhne pakete v enega bolj prilagodljivo kot prejšnja možnost –max-cruft-size, ne da bi pri tem omejili skupno velikost datotek. Ta nova funkcija je še posebej uporabna v projektih z osirotelimi objekti, razpršenimi po več paketih.
Druga izboljšava, namenjena obsežnim repozitorijem, je eksperimentalna podpora za postopna posodobitev Indeksi MIDX , ki shranjevanje informacij o objektih v ločenih plasteh z uporabo bitnih datotek, kar omogoča hitrejše posodobitve ob dodajanju novih potrjenih sprememb. Ta napredek je ključnega pomena za velika skladišča, ki zahtevajo hitre operacije indeksiranja, ne da bi bilo treba metapodatke v celoti obnoviti.
Popolna zamenjava rekurzivnega mehanizma za združevanje z ORT
Git 2.50 uvaja veliko spremembo z trajna odstranitev rekurzivnega fuzijskega motorja tradicionalno. Namesto tega Uporaba ORT je konsolidirana, En sodobnejši, vzdržnejši in učinkovitejši fuzijski motor. ORT ne ponuja le natančnejše analize konfliktov, temveč omogoča tudi preverjanje, ali je združitev mogoča brez ustvarjanja dodatnih objektov. Poleg tega ukaz merge-tree zdaj vključuje možnost –quiet za uporabo kot tihi preverjevalnik združitev brez spreminjanja repozitorija.
gitt-diff-pairs: rešitev za težave s skalabilnostjo
Pregled kode je nedvomno eden od stebrov sodobnega sodelovalnega razvoja, razlike med revizijami pa igrajo v tem procesu pomembno vlogo. S prihodom Gita 2.50 je bila uvedena rešitev, zasnovana za skalabilnost: nov ukaz git-diff-pairs.
Tradicionalno za primerjavo med dvema revizijama uporabite ukaz, kot je:
git diff HEAD~1 HEAD
To ustvari celoten popravek, ki vsebuje vse spremembe med navedenimi revizijami. Čeprav je v mnogih primerih učinkovit, lahko pri delu z velikimi nabori spremenjenih datotek povzroči težave z zmogljivostjo.
Zato je bil git-diff-pairs posebej zasnovan za sprejemanje surovih vhodnih podatkov neposredno iz izhoda git diff-tree in učinkovito ter natančno generiranje ustreznih popravkov.
Uporaba je tako preprosta kot:
git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z
Ta ukaz vzame podane pare blobov in ustvari natančen izhod diff, pri čemer ohrani kontekstualne informacije in omogoči razdelitev dela na manjše serije. To odpira vrata vzporedni obdelavi, izboljšuje učinkovitost virov in olajša skalabilnost v orodjih, ki temeljijo na diffu, kot je GitLab.
Nove funkcije za čiščenje, filtriranje in vzdrževanje
Git 2.50 vključuje več dodatnih orodij, namenjenih izboljšanju vzdrževanja repozitorija:
- Ukaz je bil dodan spuščanje refloga v git, ki vam omogoča popolno brisanje refloga za določeno vejo, kar je idealno za čiščenje zgodovine dela, ko vam ni več treba vzdrževati prejšnjih referenc.
- Možnost –filter cat-file –batch je zdaj na voljo v gitu in omogoča filtriranje rezultatov po vrsti objekta.
Poleg tega je poudarjenih tudi več notranjih optimizacij:
- Izboljšana uporaba simbolnih povezav s predpomnjenjem predpon in zmanjšanjem odvečnih preverjanj.
- Odstranitev odvisnosti Perla v dokumentaciji in testnih skriptih, njihova zamenjava z lupinskimi funkcijami ali implementacijami C, kar olajša njihovo prevajanje na sistemih z minimalističnimi konfiguracijami.
- Vključno s krmilnikom uporabniška_razlika za analizo razlik v datotekah .ini.
- Izboljšana združljivost ukaza git send-email s strežniki SMTP, kot je Outlook.
Končno, če vas zanima več o tem, si lahko ogledate podrobnosti v naslednja povezava.