Két hónapnyi intenzív munka után a fejlesztői közösség A Git bemutatja a Git 2.51-es verzióját, egy frissítés, amely 506 változtatást foglal magában, amelyekben 91 fejlesztő vett részt, amelyből 21-en először járultak hozzá.
Ez a kiadás olyan fejlesztéseket vezet be, amelyek célja a teljesítmény javítása és a tárházkezelés egyszerűsítése, beleértve a git-push és a git-fetch teljesítményoptimalizálását, valamint számos változtatást az új 3.x ág felé.
Git 2.51 legfontosabb új funkciók
A Git 2.51 egyik legfontosabb tulajdonsága a A git push és git fetch parancsok optimalizálása nagyszámú hivatkozással rendelkező adattárakban. A fejlesztés kulcsa a kötegelt frissítésben rejlik., amely több linket dolgoz fel egyetlen tranzakcióban, ahelyett, hogy külön-külön dolgozná fel őket.
Ennek az optimalizálásnak köszönhetően, A reftable backend mostantól jobban teljesít, mint a hagyományos fájlok backendje.A legfeljebb 10 000 referenciát tartalmazó adattárakkal végzett tesztekben a git fetch teljesítménye 22-szeresére nőtt reftable és 1.25-szörösére fájlok esetén, míg a git push teljesítménye 18-szorosára, illetve 1.21-szeresére javult.
Egy másik fontos újítás az iAz úgynevezett cruft csomagok bevezetése, olyan hozzáférhetetlen tárgyak tárolására tervezték, amelyek nem ágakhoz vagy címkékhez kapcsolódnak. Ezek a korábban szétszórt tárgyak, mostantól külön csomagolásban is kezelhetős, ami megkönnyíti a kezelésüket és csökkenti a többcsomagos indexek (MIDX) méretét.
az új repack.MIDXMustContainCruft beállítás, a Git elkerüli ezen objektumok belefoglalását a fő indexekbeA GitHubon végzett tesztek során ez a konfiguráció 38%-kal csökkentette az index méretét, 35%-kal gyorsította az írást és 5%-kal javította az olvasást.
Új megközelítés a tárgyak csomagolásában
El A git pack-objects parancs tartalmazza a –path-walk kapcsolót, amely egy innovatív módszert vezet be a csomagolási fájlok átszervezéséhez. A Git mostantól a hash-ek alapján dolgozza fel az objektumokat, és a fájlútvonaluk alapján is végig tud haladni rajtuk, így azokat, amelyek ugyanazon a helyen találhatók, egy helyre csomagolja. Ez a megközelítés kiküszöböli az objektumok előzetes rendezésének szükségességét, és kisebb, hatékonyabb fájlcsomagolást eredményez.
Ezzel a verzióval is Szabványosították a Git Stash-sel létrehozott működő faállapotok és indexek cseréjének új formátumát.Mostantól lehetőség van a tárolók exportálására és importálására, akárcsak az ágak vagy címkék esetében, így könnyebb az állapotok áthelyezése egyik rendszerből a másikba.
Például:
git stash export --to-ref refs/stashes/mi-stash git push origin refs/stashes/mi-stash git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/mi-stash
Klasszikus parancsok fejlesztései
Számos A Git parancsok releváns frissítéseket kaptak:
- A git cat-file mostantól jelenti a hiányzó objektumokat és almodulokat, azonosítókat jelenítve meg ahelyett, hogy csak a „hiányzó” jelölést jelölné.
- A git naplója a Bloom szűrőoptimalizálásának előnyeit élvezi, felgyorsítva a kereséseket több fájlútvonal esetén.
- A 2019 óta kísérleti jellegűnek tekintett git switch és git restore parancsok végre stabilizálódnak, mint a git checkout modern alternatívái.
- A git whatchanged parancs, ami a git log –raw parancsnak felel meg, elavult, és a Git 3.0-ban eltávolításra kerül.
- A git for-each-ref megkapja a –start-after opciót, amely a –count kapcsolóval együtt lehetővé teszi a kimenet lapozását.
- A git merge és a git pull mostantól tartalmazza a –compact-summary kapcsolót, amely tömörebb összefoglaló formátumot biztosít.
C99 támogatás és új hozzájárulási szabályok
A Git továbbra is a C9 szabvány jellemzőihez igazítja kódját9. Bár 2021 óta kötelező egy kompatibilis fordítóprogram, a fejlesztők óvatosan járnak el, hogy fenntartsák a kompatibilitást azokkal a fordítóprogramokkal, amelyek csak részben implementálják azt.
Ezenkívül jelentős változást vezettek be a hozzájárulási politikában: A javításokat mostantól álnéven is be lehet nyújtani, egy olyan döntés, amely összhangban van a Linux kernel szabályaival, és amelynek célja a közreműködők számára nagyobb rugalmasság biztosítása.
A Git 3.0-ra tekintve
El A fejlesztőcsapat frissítette a Git 3.0-ra vonatkozó ütemtervet is., ahol két fő változás emelkedik ki: az SHA-256 alapértelmezett használata objektumazonosítóként, valamint a refable formátum bevezetése az ág- és címkehivatkozások tárolására. Ezek a fejlesztések a biztonság és a hatékonyság javítását célozzák az egyre nagyobb és összetettebb adattárakban.
forrás: https://lore.kernel.org