Három hónapos fejlesztés után megjelent a Git 2.32 verziójának kiadása, amely egy elosztott verziókezelő rendszer. A Git az egyik legnépszerűbb, legmegbízhatóbb és legnagyobb teljesítményű verziókezelő rendszer, amely rugalmas eszközöket biztosít a nemlineáris fejlesztéshez, alapvetően ágaztatásra és egyesítésre építve. A történet integritásának és a visszamenőleges módosításokkal szembeni ellenállásának biztosítása érdekében implicit hash-elést alkalmazunk a korábbi történelem minden egyes commitjában, emellett a fejlesztők digitális aláírásaival is hitelesíthetők az egyes tagek és commitok.
Az előző kiadáshoz képest 617 változtatás került be a új verzióba, 100 fejlesztő részvételével, akik közül 35-en először vettek részt a fejlesztésben. Fő újítások:
- A 'git commit' parancshoz hozzáadva lett a '--trailer [=]' opció, amely megkönnyíti a saját strukturált információ (trailer) csatolását a commithoz kulcs/érték formátumban, amelyet a 'interpret-trailers' parancs majd feldolgozhat.
- A GIT_CONFIG_NOSYSTEM mechanizmus helyett, amely megakadályozta a rendszer szintű konfigurációs fájlok olvasását, a GIT_CONFIG_SYSTEM mechanizmus használata javasolt, amely lehetővé teszi, hogy egyértelműen megadjuk, mely fájlból kell betölteni a közös rendszerbeállításokat, valamint a GIT_CONFIG_GLOBAL paramétert a felhasználó-specifikus beállítások felülírásához a $HOME/.gitconfig fájlban. A GIT_CONFIG_SYSTEM változó üres értékre állítása a GIT_CONFIG_NOSYSTEM-hoz hasonló viselkedést eredményez.
- A Git második verziójú kommunikációs protokolljának használatakor a 'git push' végrehajtásakor megvalósult a közös ős meghatározása a fogadó oldalon, lehetővé téve a 'git push' hatékonyságának a 'git fetch'-hez való igazítását, és kizárja az olyan objektumok letöltését, amelyekre nincs szükség.
- Egyszerű IPC-interfész került hozzáadásra, lehetővé téve olyan szolgáltatások létrehozását, mint például a fsmonitor.
- Megszűnt a '.gitattributes', '.gitignore' és '.mailmap' fájlok feldolgozása, ha azok szimbolikus linkek.
- A HTTP szállításhoz hozzáadva lett a jelszócache támogatása, amely sikeresen felhasználásra került a tanúsítvány feloldásához.
- A «git stash show» parancsban megvalósították a nem nyilvántartott ideiglenesen eltávolított fájlok részének megjelenítésének lehetőségét.
- A «git repack» parancs csapatában egy fejlettebb újrapakolási stratégiát javasoltak, amely csökkenti az erőforrás-fogyasztást az újrapakolás során.
- A «git commit» parancsban egy kibővített - «—fixup» (komitálás a «rebase —autosquash»-hoz) - opciót valósítottak meg, amely lehetővé teszi a választást: csak a napló üzenetének módosítása vagy a üzenet és a tartalom módosítása.
- A «git send-email» parancsban figyelembe vették a core.hooksPath beállítást.
- A «git format-patch -v<n>» parancs megengedi, hogy nem egész számú számlálókat használjunk.
- A «git clone» parancsban hozzáadták a «—reject-shallow» lehetőséget, amely megakadályozza a sekély (shallow) módú klónozást a repókban (teljes változástörténet nélkül).
- A «gitweb» programhoz hozzáadtak egy email elrejtő módot, amely helyettesíti az emailhez hasonló stringeket a kimenetben.
- Megváltozott a «git apply —3way» parancs logikája, amely most először megpróbálja alkalmazni a háromoldalú egyesítési algoritmust és csak hiba vagy konfliktus esetén tér vissza a megszokott patch alkalmazásra (korábban ez fordítva volt).
- A «git apply» parancsban egyszerre engedélyezett a «—3way» és a «—cached» opciók megadása.
- A Userdiff-hez hozzáadtak sablonokat a „Scheme” nyelvhez.
- A «git log» parancsban hozzáadták a «—diff-merges=<style>» opciót és a log.diffMerges beállítást az alapértelmezett mód kiválasztásához.
- A «git add» és «git rm» parancsokba további védelmet építettek be az adatok módosítása ellen a részleges klónozás (sparse checkout) hatókörén kívül eső útvonalakon.
- A «git rev-list» parancshoz hozzáadták a «—filter=object:type=<type>» opciót a pack-objects parancs által generált pack-fájlokból egy bizonyos típusú objektumok kizárására.
- A «git pack-objects» parancsban megtiltották a negatív értékek megadását a számszerű értékeket elfogadó opciókban, mint például a «—window» és a «—depth».
Forrás: opennet.ru
