Három hónapos fejlesztést követően megjelent a Git 2.44 kiadása, egy elosztott forráskód-kezelő rendszer. A Git az egyik legnépszerűbb, megbízható és nagy teljesítményű verziókezelő rendszer, amely rugalmas, a szálak elágazásán és egyesítésén alapuló, nemlineáris fejlesztési eszközöket kínál. A történet integritásának biztosítása és a visszamenőleges módosításokkal szembeni ellenállás érdekében minden egyes elkötelezésben rejtett hashelés történik az előző történetekre, valamint lehetőség van digitális aláírásokkal hitelesíteni a fejlesztők egyes címkéit és elkötelezéseit. A Git kódja GPLv2+ licenc alatt terjesztett.
A múltkori kiadáshoz képest az új verzióba 503 változtatás került, amelyet 85 fejlesztő készített, ebből 34-en először vettek részt a fejlesztésben. Főbb újítások:
- Új “git replay” parancs került hozzáadásra, amely alternatívaként alkalmazható a “git rebase”-re, és a történet újraalkotására használható a szerveren munkakönyvtár nélküli (bare-repository, amely nem tartalmazza a munkakönyvtárat) több szál egyidejű kezelésére, a jelenleg kinyert szálaktól eltérő szálakra vonatkozó rebase műveletek elvégzésére, vagy egyszerűen a merge műveletek felgyorsítására.
- Hozzáadásra került a GitLab CI folyamatos integrációs rendszer támogatása.
- A “git add” és “git stash” parancsokhoz hozzáadódott a “:(attr:…)” útvonal attribútumok támogatása, hasonlóan a “git show” parancshoz. Például a “git add ':(attr:~binary)'” használható az összes szöveges (nem bináris) fájl indexbe helyezésére. Ezen kívül az új kiadásban javasolt egy “builtin_objectmode” attribútum a fájlok elérési útjának engedélyek szerinti szűrésére. Például a “git add ':(attr:builtin_objectmode=100755)'” használható az összes végrehajtható fájl hozzáadására.
- Támogatás került bevezetésre a több pack-fájl között elosztott objektumok újrahasználatára, amelyekhez van egy összesítő index (multi-pack-index) az objektumok elérhetőségével kapcsolatos adatokkal (optimalizálás, amely lehetővé teszi, hogy a tényleges adatok továbbítása helyett a már pack-fájlokban meglévő adatokra hivatkozzunk). A git 2.44 verziójától a visszatérő objektumok kezelésére több pack-fájl felett most már nem szükséges a repó egyetlen pack-fájlba történő újracsomagolása. Az új funkció aktiválásához hajtsa végre a következő parancsokat: git config --global pack.allowPackReuse multi git multi-pack-index write --bitmap
ezután nyomon követheti, hány pack-fájlból használják újra az objektumokat a «pack-reused … (from N)» értékben, amely a «git push» végrehajtásakor jelenik meg.
- A «git rebase --autosquash» parancs mostantól alkalmazható nem interaktív módú rebase műveletekhez, lehetővé téve a rebase gyors végrehajtását és a fixup-javítások gyors alkalmazását anélkül, hogy a változások listáját ellenőrizni kellene, és anélkül, hogy módosítani kellene a GIT_SEQUENCE_EDITOR környezeti változót.
- A «git merge-file» parancshoz a «--diff-algorithm» opció került hozzáadásra az alternatív fájl-eltérések értékelési algoritmusának kiválasztásához.
- A «git checkout -B []» parancsban tilos egy másik munkafát használó ágak frissítése és kinyerése. A régi viselkedés visszaállításához hozzáadódott a «--ignore-other-worktrees» opció.
- Lehetőség nyílt a «git config advice.pushAlreadyExists» beállítás értékének «true»-ra állítására, amely eltávolítja a figyelmeztetések kimenetéről azt az utasítást, amely a kikapcsolásukra vonatkozik («Disable this message with…»), így nem foglalja el a helyet a képernyőn.
- Optimalizálva lett a «git for-each-ref» parancs végrehajtása a «--no-sort» opcióval, amely most már nem rendezett kimenetet ad (korábban a «--no-sort» megadása esetén is alkalmaztak ábécésorrendet). Az optimalizálások után a «--no-sort» alkalmazása most körülbelül 20%-kal felgyorsítja a «git for-each-ref» parancsot nagy számú hivatkozást tartalmazó repókban.
- A wincred hitelesítő kezelő backendhez hozzáadódott az OAuth tokenek frissítésének támogatása, hasonlóan a hitelesítő-tárazás és hitelesítő-libsecret backends-hez.
- A «git fetch» parancshoz hozzáadásra került a «fetch.all» konfig paraméter támogatása, amelyet a parancssori «--all» opció hozzáadásához hasonlóan dolgoznak fel.
Forrás: opennet.ru
