Bemutatták a Git 2.38 verzióját, a elágazások és egyesítések alapjain nyugvó rugalmas eszközöket biztosító rendszert, amely a legnépszerűbb, megbízható és nagy teljesítményű verziókezelő rendszerek közé tartozik. A történelmi integritás és a visszamenőleges változtatásokkal szembeni ellenállás biztosítása érdekében implicit hash-elés alkalmazásával rögzítik a teljes korábbi történetet minden egyes elkötelezésnél, továbbá lehetőség van a fejlesztők digitális aláírásával történő hitelesítésre egyes címkék és elkötelezések esetén.
A legutóbbi kiadáshoz képest a új verzió 699 változtatást tartalmaz, amelyet 92 fejlesztő készített elő, akik közül 24-en először vettek részt a fejlesztésben. Fő újítások:
- A fő összetevő közé került a Microsoft által kifejlesztett 'scalar' segédeszköz, amely a nagy tárolók kezelésére szolgál. A segédeszköz eredetileg C# nyelven íródott, de a Git-be egy átdolgozott C nyelvű változat került. Az új segédeszköz a git parancsra alapértelmezésként további teljesítmény-javító lehetőségeket és beállításokat tartalmaz, amelyek javítják a nagyon nagy tárolókkal való munkát. Például a scalar használatakor alkalmazásra kerül:
- Részleges klónozás a tároló hiányos másolatával való munkához.
- Belső fájlrendszer-változáskövető mechanizmus (FSMonitor), amely lehetővé teszi a teljes munkakönyvtár átnézése nélküli munkát.
- Indexek, amelyek különböző pack fájlokban található objektumokat ölelnek fel (multi-pack).
- Commit-graph fájlok a commitok indexgrafikájával, amely a commitok információhoz való gyors hozzáférést optimalizálja.
- Háttérben futó időszakos feladatok a tároló optimális struktúrájának fenntartására háttérben, anélkül, hogy megakadályoznák az interaktív munkamenetet (óránként végrehajtják a friss objektumok korai betöltésére a távoli tárolóból és a commitgrafikon fájl frissítésére szolgáló feladatokat, míg minden éjjel a tároló csomagolási folyamata elindul).
- A 'sparseCheckoutCone' mód, amely korlátozza a megengedett mintákat részleges klónozás esetén.
- A 'git rebase' parancshoz hozzáadódott a '--update-refs' kapcsoló, amely frissíti a mozgó ágakkal átfedő függő ágakat, így elkerülve minden egyes függő ágra való checkout végrehajtását a szükséges elkötelezés átkapcsolásához.
- A git rm parancs és a részleges indexek kompatibilitása biztosítva van.
- Javították a git mv A B parancs viselkedését, amikor fájlt mozgattak a munkaterületről részleges indexekkel a cone módban egy olyan külső területre, amelyre ez a mód nem vonatkozik.
- A bitmap fájlformátum optimalizálása történt a nagy tárolók kezelésére — opciós index táblázat került hozzáadásra, amely a kiválasztott commitok listáját és azok eltolódásait tartalmazza.
- A git merge-tree parancsban új módot valósítottak meg, amelyben a megadott két commit alapján egy olyan fát számítanak ki, mintha ezen commitok történetei egyesültek volna.
- Hozzáadva a safe.barerepository beállítás a bare tárolók (munkafát nem tartalmazó tárolók) más git tárolókba való elhelyezésének lehetőségének kezelésére. Ha explicit értékre van állítva, csak a gyökérkönyvtárban elhelyezett bare tárolókkal lehet dolgozni. A bare tárolók almappákba való elhelyezéséhez az all értéket kell használni.
- A git grep parancshoz hozzáadva az -m (—max-count) opció, amely megegyezik a GNU grep azonos nevű opciójával, és lehetővé teszi a megjelenített egyezések számának korlátozását.
- A ls-files parancsban megvalósították a —format opciót a megjelenített mezők testreszabására (például bekapcsolható az objektum neve, módjai stb. megjelenítése).
- A git cat-file parancsban az objektumok tartalmának megjelenítésekor figyelembe veszik az emailbe történő szerzői hozzárendeléseket, amelyek a mailmap fájlban vannak megadva.
Forrás: opennet.ru
