Nova verzija Gita, git 2.49, sa sobom donosi niz značajnih poboljšanja u performansama, kompatibilnosti i funkcionalnosti. Ovaj distribuirani sistem kontrole verzija, koji se široko koristi u razvoju softvera, prima optimizacije u upravljanju podacima, poboljšanu podršku za Rust i poboljšanja u kompresiji objekata.
Među najznačajnijim promjenama je Implementacija nove metode za poboljšanje kompresije i pakovanja objekata, uvođenje alata za bolje upravljanje blobovima u parcijalnim klonovima i efikasniju integraciju sa modernim programskim jezicima.
Git 2.49: Poboljšanja performansi i pakovanja podataka
Jedna od ključnih promjena u ovoj verziji je uvođenje novi name-hash v2 algoritam pakovanja. Ova metoda optimizira kompresiju i organizaciju objekata u spremištima, što rezultira značajnim smanjenjem veličine upakovanih datoteka i većom efikasnošću u upravljanju sličnim objektima.
Sa ovim novim izdanjem, Git može bolje grupirati datoteke bez oslanjanja samo na posljednje znakove naziva datoteke, omogućavajući brže dijeljenje datoteka. ujednačenija i efikasnija kompresija. Prvi rezultati pokazuju smanjenje vremena pakovanja i značajno smanjenje upotrebe skladištenja.
Pored toga, važno je razmotriti kako se ovo poboljšanje performansi odnosi na druge projekte u softverskom prostoru. na primjer, OpenZFS 2.3.1 donosi poboljšanja performansi što može biti relevantno i za programere koji koriste Git.
Još jedna važna tačka je uključivanje alata 'git backfill'. Ova nova naredba olakšava oporavak historijskih blob-ova u kloniranim spremištima s opcijom --filter=blob:none
. Do sada, kada je tražio informacije o prethodnim verzijama fajlova u delimičnim klonovima, Git je morao da preuzima blob jednu po jednu, što je značajno povećalo vreme čekanja.
Novi 'git backfill' alat za djelomične klonove
Uz 'git backfill', Git sada grupiše zahtjeve i smanjuje broj paketa potrebnih za dohvaćanje informacija, poboljšanje brzine i efikasnosti u ovim operacijama. Dodatno, njegova integracija sa novim API-jem za praćenje ruta omogućava bolju organizaciju zahtjeva i optimiziran prijenos podataka.
Ovaj novi alat je posebno koristan za one koji redovno rade sa velikim i složenim repozitorijumima. Poboljšanja upravljanja djelomičnim kloniranjem su kritična za pojednostavljenje toka rada programera.
Podrška za hrđu i kompatibilnost
Nastavljajući evoluciju projekta, uvodi Git 2.49 prve biblioteke napisane na Rustu: libgit-sys
y libgit
. Ove biblioteke pružaju interfejsi niskog i visokog nivoa za pristup internim Git funkcijama, otvarajući vrata budućoj migraciji na ovaj jezik.
Cilj je poboljšati sigurnost i stabilnost koda zamena kritičnih delova prvobitno implementiranih u C. Iako su ove biblioteke još uvek u ranoj fazi, one predstavljaju važan korak u modernizaciji projekta. Ova vrsta inovacije je paralelna sa implementacijama koje se vide u drugim projektima kao npr vino 10.0, koji nastoji poboljšati kompatibilnost i sigurnost.
Zlib-ng podrška
Još jedna nova karakteristika u ovoj verziji je podrška za Zlib-ng, biblioteka kompresije optimizovana za savremeni hardver. Za razliku od standardne verzije Zliba, ova varijanta uključuje specifične optimizacije za moderne arhitekture, nudeći poboljšanja performansi do 25% na određenim operacijama.
Za one koji žele da iskoriste ovo poboljšanje, sada je moguće kompajlirati Git sa podrškom za Zlib-ng koristeći nove opcije u sistemu izgradnje.
Ostala poboljšanja i promjene u Gitu 2.49
Pored glavnih novih mogućnosti, Git 2.49 također donosi manja, ali značajna poboljšanja:
- Nova opcija '–revision' za 'git clone': Sada je moguće klonirati spremište na određeno urezivanje bez potrebe za referencom na granu ili oznaku.
- Poboljšanja čišćenja koda: Nastavljaju se napori da se eliminišu globalne varijable i poboljša interna struktura projekta.
- Zastarjelost starih konfiguracija: Upotreba direktorija je označena za buduće uklanjanje
.git/branches/
y.git/remotes/
.
Sa ovim promjenama, Git nastavlja napredovati u poboljšanju efikasnost, kompatibilnost i upotrebljivost, nastavljajući svoju evoluciju kao ključnog alata za razvoj softvera.