Po třech měsících vývoje byl publikován vydání distribuovaného systému správy zdrojového kódu Git 2.32. Git je jedním z nejpopulárnějších, nejspolehlivějších a vysoce výkonných systémů správy verzí, který poskytuje flexibilní nástroje pro nelineární vývoj založené na větvení a slučování větví. Pro zajištění integrity historie a odolnosti vůči změnám "ze zpětného pohledu" se používá implicitní hashování celé předchozí historie v každém commitu, stejně je možné ověření digitálními podpisy vývojářů jednotlivých tagů a commitů.
Ve srovnání s předchozím vydáním byla do nové verze přijata 617 změn, na kterých se podílelo 100 vývojářů, z nichž 35 se podílelo na vývoji poprvé. Hlavní novinky:
- Do týmu "git commit" byla přidána volba "--trailer [=]", která umožňuje zjednodušit připojení vlastní strukturované informace (trailer) k commitu ve formátu klíč/hodnota, kterou lze poté zpracovat pomocí příkazu "interpret-trailers".
- Místo mechanismu GIT_CONFIG_NOSYSTEM, který se používá k zabránění čtení ze sdíleného systémového konfiguračního souboru, byl navržen mechanismus GIT_CONFIG_SYSTEM, který umožňuje explicitně stanovit, ze kterého souboru by měly být načítány systémové nastavení, stejně jako parametr GIT_CONFIG_GLOBAL pro přepsání nastavení spojených s jednotlivými uživateli v $HOME/.gitconfig. Přiřazení prázdnému výrazu proměnné GIT_CONFIG_SYSTEM změní chování na ekvivalentní GIT_CONFIG_NOSYSTEM.
- Při používání druhé verze komunikačního protokolu Git při provádění "git push" bylo implementováno určení společného předka na přijímací straně, což umožnilo zvýšit efektivitu práce "git push" na úroveň "git fetch" a vyloučit stahování objektů, které nejsou potřebné.
- Bylo přidáno jednoduché IPC rozhraní, které umožňuje vytvářet služby, jako je fsmonitor.
- Bylo zastaveno zpracování souborů " .gitattributes", " .gitignore " a " .mailmap ", pokud jsou symbolickými odkazy.
- Pro transport HTTP byla přidána podpora pro caching hesla úspěšně použitý k odemčení certifikátu.
- V příkazu "git stash show" byla implementována možnost zobrazení nesledované části úložiště dočasně odstraněných souborů.
- Byla navržena pokročilejší strategie přebalení repozitáře pomocí týmu „git repack“, která umožňuje snížit spotřebu prostředků při přebalování.
- V příkazu „git commit“ byl implementován rozšířený variant volby „—fixup“ (vytvoření commitu pro „rebase —autosquash“) — „—fixup=(reword|amend):“, která poskytuje výběr: měnit pouze zprávu v historii nebo zprávu a obsah.
- V příkazu „git send-email“ byla zohledněna konfigurace nastavení core.hooksPath.
- V „git format-patch -v“ bylo povoleno používání čítačů, které nejsou celými čísly.
- V „git clone“ byla přidána volba „—reject-shallow“, která umožňuje zakázat klonování z repozitářů v režimu shallow (bez úplné historie změn).
- V programu „gitweb“ byl přidán režim skrývání emailu, který nahrazuje řetězce podobné emailům při výstupu.
- Byla změněna logika zpracování příkazu „git apply —3way“, který nyní nejprve zkouší použít algoritmus trojstranného slučování a teprve v případě selhání nebo vzniku konfliktu se vrací k obvyklému použití patche (dříve to bylo naopak).
- V příkazu „git apply“ bylo povoleno současné uvedení voleb „—3way“ a „—cached“.
- Do Userdiff byly přidány šablony pro jazyk „Scheme“.
- Do příkazu „git log“ byla přidána volba „—diff-merges=“ a nastavení log.diffMerges pro výběr výchozího režimu.
- Do příkazů „git add“ a „git rm“ byla přidána dodatečná ochrana proti změnám dat v cestách nacházejících se mimo oblast operace částečného klonování (sparse checkout).
- Do příkazu „git rev-list“ byla přidána volba „—filter=object:type=“ pro vyloučení určitého typu objektů z pack-filename generovaného příkazem pack-objects.
- V příkazu „git pack-objects“ je zakázáno uvádění záporných hodnot v parametrech přijímajících číselné hodnoty, jako jsou „—window“ a „—depth“.
Zdroj: opennet.ru
