Git 2.49: gyorsabb csomagolás, intelligensebb klónozás és új fejlesztések

Segítséget kaptál? Szívesen töltöd itt az idődet? Visszajársz hozzánk? Támogasd a munkákat: Ko-fi(külső hivatkozás) és Paypal(külső hivatkozás)!

kami911 képe

A Git projekt új karbantartási kiadásokat jelentetett meg(külső hivatkozás). Az egyik legfontosabb újdonság a felújított név-hash függvény (name-hash function), amely hatékonyabb delta tömörítést biztosít azáltal, hogy intelligensebben csoportosítja a hasonló objektumokat. Ez különösen akkor hasznos, ha egy nagy fájl apró módosításokon megy keresztül, mivel ilyenkor Git hatékonyabban képes a korábbi verziókra hivatkozva tárolni az új változatokat. Továbbá a git backfill nevű új funkció csökkenti az egyenkénti letöltések számát azáltal, hogy az előzményfájlok blob kéréseit egyetlen műveletbe tömöríti. Ahelyett, hogy egyesével kérné le az egyes objektumokat, a rendszer most fájlútvonalak szerint csoportosítja azokat, ami kevesebb hálózati terhelést és jobb tömörítést eredményez. Amennyiben a --sparse opció engedélyezve van, a git backfill csak a sparse checkout konfiguráció szerint releváns objektumokat tölti le, ami tovább javítja a hatékonyságot.Zlib-ng támogatás a gyorsabb tömörítés érdekében

A Git 2.49 bevezeti a zlib-ng támogatását, amely a jól ismert zlib könyvtár egy modern változata. Ez a fejlesztés az SSE2 és AVX2 SIMD utasításkészletek optimalizálásával és a régi kódrészletek egyszerűsítésével jelentős sebességnövekedést biztosít az adatok tömörítése és kicsomagolása során.

Rust érkezése a Git ökoszisztémába

A Git 2.49 az első Rust alapú fejlesztéseket is bemutatja:

  • libgit-sys és libgit Rust crate-ek
    Ezek a könyvtárak Git belső függvényeinek egy részét csomagolják alacsony és magas szintű Rust API-kba, amely a jövőben stabilabb és biztonságosabb kódbázist eredményezhet.

Bár a jelenlegi implementáció még csak egy kezdeti prototípus, amely főként a config.h interfészre koncentrál, ez a lépés utat nyit a Rust-alapú fejlesztések előtt.

Ha valaha elgépelted a git push parancsot, például git psuh formában, akkor tapasztalhattad, hogy Git megpróbálja automatikusan kijavítani azt. Korábban, ha a help.autocorrect értékét “1”-re állítottad, a javított parancs szinte azonnal végrehajtásra került, ami váratlan hibákat okozhatott.

A Git 2.49 ezt az opciót átalakította, és most:

  • "1" = be van kapcsolva, de nincs automatikus végrehajtás
  • Nagyobb szám = végrehajtási késleltetés decimásodpercekben

Ez a változás megelőzi a nem kívánt parancsvégrehajtásokat, és egyértelműbbé teszi a beállítások működését.

További fejlesztés, hogy git clone most már támogatja a --revision opciót, amely lehetővé teszi tetszőleges commitok közvetlen klónozását anélkül, hogy azokhoz ág (branch) vagy címke (tag) tartozna.

Ez a funkció hasznos lehet például CI/CD folyamatokban vagy speciális build-környezetekben, ahol pontosan egy adott commit letöltésére van szükség bonyolult kézi beállítások nélkül.

A Git 2.49 főbb újdonságai:

  • Gyorsabb és intelligensebb fájltömörítés (új name-hash funkció és git backfill)
  • Zlib-ng támogatás a jobb tömörítésért
  • Rust-alapú könyvtárak bevezetése (libgit-sys, libgit)
  • Pontosságot növelő autocorrect javítások
  • Új --revision opció a git clone számára

További részletek és a teljes változáslista elérhető a Git 2.49 hivatalos kiadási jegyzeteiben(külső hivatkozás).