- Novi indeksi višestrukih pakovanja bez oštećenja sa
repack.MIDXMustContainCruftsmanjite veličinu MIDX-a i ubrzajte čitanje. - Prepakivanje staze nakon šetnje (
--path-walk) proizvodi manja pakovanja sa konkurentnim vremenom. - Format za razmjenu spremljenih podataka omogućava izvoz/uvoz spremljenih podataka kao referenci na različitim mašinama.
- Napredak ka Gitu 3.0: SHA-256 i reftable podrazumijevane vrijednosti su označeni; poboljšanje korisničkog interfejsa i alata.

Git 2.51 je izašao, donoseći širok set poboljšanja od više od 91 saradnika (uključujući 21 korisnika početnika) i kontinuirani napor za modernizaciju alata bez ometanja ustaljenih radnih procesa.
Ovo izdanje se fokusira na praktične nadogradnje— od skladištenja i pakovanja do upotrebljivosti i sigurnosnog stanja — dok se istovremeno pripremaju za promjene planirane za Git 3.0.
Indeksi višepakiranja bez cruft-free-a
Git pohranjuje podatke kao objekte (blobovi, stabla, commiti) bilo labavo ili unutar packfileova, s pack indeksima koji mapiraju hashove na offsete. Multi-pack indeksi (MIDX) omogućavaju Gitu da indeksira objekte u više packova, pretvarajući više pretraga u jednu O(log N) pretragu, a također omogućavaju bitmape dostupnosti za brze provjere zadržavanja.
Bora je bila oblozi za grubu kožu, gdje se nedostupni objekti nalaze izvan MIDX-a. Ako objekt koji je nekada bio nedostupan kasnije postane dostupan iz bitmapiranog commita, ali postoji samo u cruft packu, on nema bitnu poziciju - što blokira generiranje bitmape.
Git 2.51 mijenja ponašanje ponovnog pakovanja tako da prilikom generiranja novih ne-cruft paketa, duplicira objekte (i njihove pretke) čija se jedina druga kopija nalazi u cruft paketu. Ponavljanje ovoga osigurava da je ne-cruft skup zatvoren pod dostupnošću, omogućavajući konzistentnu pokrivenost bitmapom.
Nova konfiguracija ovo olakšava: repack.MIDXMustContainCruft Koristi ažuriranu logiku ponovnog pakovanja kako bi se cruft paketi zadržali izvan MIDX-a. U velikoj upotrebi, MIDX datoteke su se smanjile za oko 38%, brže su pisane za ~35% i poboljšale performanse čitanja za otprilike 5%.
Manji paketi sa šetnjom stazom
Git 2.49 je uveo bolji name-hash. za uređivanje redoslijeda objekata tokom delta selekcije, smanjujući oslanjanje na posljednjih 16 znakova putanje i uzimajući u obzir strukturu direktorija za pametnije uparivanje.
Git 2.51 ide dalje s novim načinom prikupljanja "path walk" za ponovno pakiranje. Umjesto striktnog emitiranja objekata po redoslijedu revizija, Git grupira i emitira sve objekte za datu putanju zajedno, zaobilazeći potrebu za heuristikom heša imena.
Rezultat su manje paketne datoteke sa poboljšanim delta mogućnostima među objektima iste putanje i vremenima koja su konkurentna klasičnom prolasku. Možete to isprobati s novim --path-walk opcija prilikom ponovnog pakovanja.
Format za razmjenu Stash-a
Ako koristite git stash često, znate da tradicionalno modelira svaki stash kao tri commita (pripremljeni, nepripremljeni i sintetički roditelj koji ih povezuje) pohranjena pod refs/stash, što otežava migraciju između mašina.
Git 2.51 dodaje lančanu reprezentaciju gdje svaki unos u skladište uključuje dodatno porijeklo koje se povezuje s prethodnim unosom u skladište, formirajući linearnu historiju koju je lakše premještati i upravljati njome.
Nove podkomande otključavaju prenosivostMožete izvesti spremljene datoteke u jednu referencu i prebaciti ih/povući kao bilo koju granu ili oznaku, a zatim ih uvesti na drugu mašinu.
Primjer radnog toka:
$ git stash export --to-ref refs/stashes/my-stash
$ git push origin refs/stashes/my-stash
$ git fetch origin '+refs/stashes/*:refs/stashes/*'
$ git stash import refs/stashes/my-stash
Bilješke o performansama za velike repozitorije
Ažuriranja referenci se bolje skaliraju u repozitorijima s vrlo velikim brojem referenci, zahvaljujući grupnim ažuriranjima koja smanjuju transakcijske troškove. U scenarijima s ~10,000 referenci, prijavljeni dobici uključuju dramatična ubrzanja - posebno s reftable backendom - kod operacija poput dohvaćanja i slanja.
Alati i UX poliranje
git cat-fileje informativniji za putanje podmodula u--batch-checknačin rada, prijavljivajući unos podmodula umjesto samo "nedostaje".- Bloom filteri s promijenjenom putanjom sada pomažu s višestrukim specifikacijama putanja (npr.
git log -- a b), proširujući doseg optimizacije. git switchigit restoresu stabilne i više se ne smatraju eksperimentalnim, učvršćujući njihove uloge kao jasnije alternativegit checkout.git whatchangedje zastarjelo i planirano za uklanjanje u Gitu 3.0; ostaje dostupno iza--i-still-use-this.git for-each-refdodaje paginaciju preko--start-after, poboljšavajući popis referenci u vrlo velikim repozitorijima.- Spajanje dobija uredniji sažetak sa
--compact-summaryzagit mergeigit pull.
Prema Gitu 3.0: sigurnosne i standardne postavke pohrane
Projekat nastavlja svoju tranziciju na SHA-256Iako novi repozitoriji i dalje po defaultu koriste SHA-1, više internih komponenti i transporta u verziji 2.51 razumije SHA-256, što olakšava eksperimentiranje i testiranje kompatibilnosti.
Reftable je na putu da postane zadani Reference backend u Gitu 3.0, rješavajući probleme osjetljivosti na velika i mala slova i Unicode nedostataka na Windowsu/macOS-u, omogućavajući atomske referenc transakcije i koristeći prednosti geometrijskog sažimanja i kompresije prefiksa.
Želite li pregled budućih zadanih postavki? Možete izgraditi Git sa WITH_BREAKING_CHANGES testirati nadolazeću osnovnu liniju (npr. SHA-256 i reftable defaults) prije izdanja 3.0.
Proces i standardi za razvojne programere
Upotreba C99 se širi: kodna baza sada uglavnom dozvoljava bool ključna riječ, a projekt dokumentira koje su C99 značajke usvojene ili se procjenjuju, balansirajući moderne jezičke značajke s prenosivošću.
Smjernice za doprinose se razvijaju kako bi se omogućilo slanje radova pod identitetima koji nisu legalno ime saradnika, što bi se bolje uskladilo s pristupom Linux kernela i smanjile prepreke za učešće.
git 2.51 spaja konkretne pobjede - poput MIDX-a bez nepotrebnih datoteka, path-walk paketa, uvoza/izvoza iz skladišta i poboljšanja performansi velikih repozitorija - sa stalnim napretkom ka jačoj kriptografiji i modernim podrazumijevanim postavkama pohrane, što pruža raznolika zajednica održavatelja i novih saradnika.
