Po třech měsících vývoje byla zveřejněna verze distribuovaného systému pro řízení zdrojů Git 2.40. Git je jedním z nejpopulárnějších, spolehlivých a vysoce výkonných systémů pro správu verzí, který poskytuje flexibilní nelineární vývojové nástroje založené na větvení a slučování větví. Pro zajištění integrity historie a odolnosti vůči retroaktivním změnám se používá implicitní hashování celé předchozí historie v každém commitu, je také možné ověřit jednotlivé tagy a commity pomocí digitálních podpisů od vývojářů.
Do nové verze, připravované za účasti 472 vývojářů, bylo oproti předchozímu vydání přijato 88 změn, z nichž 30 se podílelo na vývoji poprvé. Hlavní inovace:
- Skript git-jump přidal podporu pro editor Emacs, kromě dříve podporovaného editoru Vim. Git-jump se používá k odeslání informací o pozicích v souboru do textového editoru pro rychlou navigaci a přechod na úpravu kódu na konkrétním místě. Například git-jump lze použít k přeskakování v editoru mezi řádky vzniklými při analýze konfliktů sloučení, vyhodnocování rozdílů a provádění vyhledávání (můžete provést „git jump grep foo“ a pak rychle přeskakovat mezi pozicemi, kde je zástupný znak „foo“ dochází).
- Soubor "git cat-file" poskytuje podporu pro použití voleb "-s" a "--batch-check" spolu s "--use-mailmap" ke správnému určení velikosti objektu, s přihlédnutím k nahrazení identifikátoru na základě e-mailové vazby specifikované v souboru mailmap (dříve volba „--use-mailmap“ ovlivňovala pouze výstup obsahu, ale nebrala v úvahu, že starý a nahrazený pár jméno/e-mail může mít různé velikosti).
- Do příkazu „git check-attr“ byla přidána možnost „--source“ pro výběr stromu s nezbytným souborem „.gitattributes“, který bude použit k určení skutečných atributů, pokud existuje několik souborů „.gitattributes“. v úložišti.
- Implementace příkazu „git bisect“ je přepsána v C a zabudována do hlavního spustitelného souboru git (dříve byl příkaz implementován ve formě skriptu Shell).
- Stará implementace Shell příkazu „git add —interactive“ byla odstraněna (v git 2.26 byla nabídnuta vestavěná verze C, ale stará implementace Shell zůstala dostupná a byla regulována nastavením add.interactive.useBuiltin).
- Přidána možnost '--merge-base' do příkazu 'git merge-tree'.
- Přidána možnost "--abbrev=" do příkazu "git range-diff". "
- Přidána možnost přepsat editor seznamu pro interaktivní režim příkazu rebase nastavením proměnné GIT_SEQUENCE_EDITOR pomocí příkazu „git var“, podobně jako „git var GIT_EDITOR“.
- Do subsystému účtů byla přidána podpora hesel s omezenou dobou platnosti.
- Skripty pro dokončování vstupu pro Bash mají nyní režim bez ohledu na velikost písmen.
Zdroj: opennet.ru