Po troch mesiacoch vývoja bol vydaný Git 2.46, distribuovaný systém správy zdrojového kódu. Git je jeden z najpopulárnejších, najspoľahlivejších a najvýkonnejších systémov správy verzií, ktorý poskytuje flexibilné, nelineárne vývojové možnosti založené na vetvení a zlučovaní. Na zabezpečenie historickej integrity a odolnosti voči retroaktívnym zmenám sa používa implicitné hašovanie celej predchádzajúcej histórie v každom commite a je možné použiť digitálne podpisy jednotlivých značiek a commitov. Git je licencovaný pod licenciou GPLv2+.
V porovnaní s predchádzajúcou verziou obsahuje nová verzia 746 zmien, na ktorých sa podieľalo 96 vývojárov, z ktorých 31 je v procese vývoja nováčikov. Medzi kľúčové nové funkcie patria:
- Bola pridaná experimentálna podpora pre nový typ bitmapy – „pseudo-merge reachability bitmap“. Na rozdiel od štruktúry „reachability bitmap“ táto štruktúra ukladá údaje o množinách objektov súvisiacich s commitmi v rámci viacerých commitov, a nie pre každý commit. Táto organizácia umožňuje použiť jednu bitmapu na určenie objektov pre commity naprieč vetvami. Vo veľkých repozitároch to eliminuje potrebu vytvárať početné samostatné bitmapy a výrazne zrýchľuje prechádzanie objektmi, aby sa určilo, ktoré objekty je potrebné odoslať klientovi počas operácií, ako sú „git fetch“, „git rev-list“ a „git clone“. Na povolenie nového typu bitmap a definovanie logiky pre ich výber a použitie sa navrhuje séria nastavení „bitmapPseudoMerge“: git config bitmapPseudoMerge.all.pattern 'refs/(heads|tags)/' git config bitmapPseudoMerge.all.threshold now git config bitmapPseudoMerge.all.stableThreshold never git repack -adb
- Pre príkaz „git config“ bolo implementované nové rozhranie príkazového riadka. Namiesto rôznych možností na zobrazenie, premenovanie a odstránenie nastavení a sekcií, ako napríklad „--get“, „--get-all“, „--unset“ a „--remove-section“, je teraz k dispozícii sada samostatných podpríkazov. Napríklad na zobrazenie všetkých nastavení repozitára môžete teraz použiť príkaz „git config list“ a na zobrazenie obsahu konkrétneho nastavenia môžete použiť „git config get <názov nastavenia>“. Pre ďalšie filtrovanie môžete zadať filter na základe regulárneho výrazu pomocou možnosti „--regexp“.
- Protokol „credential helper“, ktorý sa používa na prenos poverení pri prístupe k repozitárom s obmedzeným prístupom, bol aktualizovaný a podporuje nové polia „authtype“ a „credential“. Tieto polia umožňujú vytváranie obslužných programov pre overovacie systémy HTTP, ktoré idú nad rámec overovania používateľského mena a hesla, napríklad pri použití Bearer Token v OAuth 2.0. Predtým takéto overovacie systémy vyžadovali zadanie citlivých údajov v čistom texte v parametri http.extraHeader. Protokol teraz navyše podporuje zachovanie stavu každého obslužného programu poverení na podporu viacstupňových overovacích metód používaných v protokoloch, ako sú NTLM a Kerberos.
- Vývoj experimentálneho backendu „reftable“ pre efektívne ukladanie odkazov na vetvy a značky v repozitári pokračoval. Tento backend využíva blokové úložisko, ktoré prijal projekt JGit a je optimalizované na ukladanie veľmi veľkého počtu odkazov. Tradičné formáty ukladania odkazov vedú k značnej réžii v repozitároch s veľkým počtom odkazov kvôli potrebe umiestniť veľmi veľa súborov do jedného adresára pri ukladaní odkazov do $GIT_DIR/refs alebo kvôli potrebe prepísať jeden veľký súbor pri každej aktualizácii pri ukladaní odkazov do $GIT_DIR/packed_refs. Nová verzia pridáva príkaz „git refs migrate --ref-format=reftable“ na migráciu existujúcich repozitárov do backendu „reftable“ (predtým bol backend povolený iba počas inicializácie repozitára).
- Príkaz git má teraz možnosť „--no-advice“, ktorá zakáže všetky správy s radami a návrhmi, čo môže byť užitočné na zabránenie zahltenia protokolu nepotrebnými informáciami pri automatickom spustení gitu.
- Začal sa proces prevodu niektorých testov z testovacej sady na jednotkové testy, čo zjednoduší testovanie nízkoúrovňových komponentov a zvýši efektivitu testovacieho procesu na platforme. Windows, čo spôsobuje veľké režijné náklady pri spúšťaní veľkého počtu procesov počas vykonávania testov implementovaných ako shell skripty.
- Kód na analýzu nastavení farieb bol aktualizovaný, aby umožňoval použitie reprezentácie „#RGB“ okrem „#RRGGBB“.
Zdroj: opennet.ru
