Vydání distribuovaného systému řízení zdrojů Git 2.26
Dostupný vydání distribuovaného systému řízení zdrojů Git 2.26.0. 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í. Pro zajištění integrity historie a odolnosti vůči retroaktivním změnám je v každém commitu použito implicitní hashování celé předchozí historie, je také možné certifikovat jednotlivé tagy a commity digitálními podpisy vývojářů.
Oproti předchozí verzi obsahovala nová verze 504 změn, připravených za účasti 64 vývojářů, z nichž 12 se podílelo na vývoji poprvé. hlavníinovace:
Výchozí nastavení bylo přepnuto na druhá verze Komunikační protokol Git, který se používá, když se klient vzdáleně připojuje k serveru Git. Druhá verze protokolu je pozoruhodná tím, že poskytuje možnost filtrovat větve a značky na straně serveru a klientovi vrací zkrácený seznam odkazů. Dříve jakýkoli příkaz pull vždy poslal klientovi úplný seznam referencí v celém úložišti, i když klient aktualizoval pouze jednu větev nebo kontroloval, zda je jeho kopie úložiště aktuální. Další pozoruhodnou inovací je možnost přidávat do protokolu nové funkce, jakmile budou v sadě nástrojů dostupné nové funkce. Klientský kód zůstává kompatibilní se starým protokolem a může nadále pracovat s novými i starými servery a automaticky se vrátit k první verzi, pokud server nepodporuje druhou.
Do příkazu „git config“ byla přidána možnost „-show-scope“, která usnadňuje identifikaci místa, kde jsou definována určitá nastavení. Git umožňuje definovat nastavení na různých místech: v úložišti (.git/info/config), v uživatelském adresáři (~/.gitconfig), v konfiguračním souboru pro celý systém (/etc/gitconfig) a prostřednictvím příkazu možnosti řádků a proměnné prostředí. Při provádění „git config“ je poměrně obtížné pochopit, kde přesně je požadované nastavení definováno. K vyřešení tohoto problému byla k dispozici možnost „--show-origin“, ale zobrazuje pouze cestu k souboru, ve kterém je nastavení definováno, což je užitečné, pokud chcete soubor upravit, ale nepomůže, pokud potřebujete změnit hodnotu pomocí „git config“ pomocí možností „--system“, „--global“ nebo „-local“. Nová volba "--show-scope" zobrazuje kontext definice proměnné a lze ji použít ve spojení s -show-origin:
$ git --list --show-scope --show-origin
globální soubor:/home/user/.gitconfig diff.interhunkcontext=1
globální soubor:/home/user/.gitconfig push.default=current
[…] místní soubor:.git/config branch.master.remote=origin
lokální soubor:.git/config branch.master.merge=refs/heads/master
$ git config --show-scope --get-regexp 'diff.*'
globální diff.statgraphwidth 35
místní diff.colormoved planina
$ git config --global --unset diff.statgraphwidth
V nastavení vazby pověření Použití masek v URL je povoleno. Jakákoli nastavení HTTP a přihlašovací údaje v Gitu lze nastavit jak pro všechna připojení (http.extraHeader, credential.helper), tak pro připojení na základě adresy URL (credential.https://example.com.helper, credential.https: //example. com.helper). Až dosud byly zástupné znaky jako *.example.com povoleny pouze pro nastavení HTTP, ale nebyly podporovány pro vazbu pověření. V Git 2.26 jsou tyto rozdíly odstraněny a například pro navázání uživatelského jména na všechny subdomény můžete nyní zadat:
[přihlašovací údaje "https://*.example.com"]
uživatelské jméno = ttaylorr
Pokračuje rozšiřování experimentální podpory částečného klonování (částečné klony), které umožňuje přenášet pouze část dat a pracovat s neúplnou kopií úložiště. Nová verze přidává nový příkaz „git sparse-checkout add“, který vám umožňuje přidávat jednotlivé adresáře a aplikovat operaci „checkout“ pouze na část pracovního stromu, namísto vypisování všech takových adresářů najednou pomocí příkazu „git sparse-checkout set" (můžete přidat jeden po druhém jeden adresář, aniž byste museli pokaždé znovu specifikovat celý seznam).
Chcete-li například klonovat úložiště git/git bez odevzdání objektů BLOB, omezení checkoutu pouze na kořenový adresář pracovní kopie a samostatného označení checkoutu pro adresáře "t" a "Documentation", můžete zadat:
$ git sparse-checkout add t
....
$ git sparse-checkout přidat dokumentaci
....
$ git sparse-checkout seznam
Dokumentace
t
Výkon příkazu „git grep“, který se používá k vyhledávání jak aktuálního obsahu úložiště, tak historických revizí, byl výrazně vylepšen. Pro urychlení vyhledávání bylo možné skenovat obsah pracovního stromu pomocí více vláken („git grep –threads“), ale vyhledávání v historických revizích bylo jednovláknové. Nyní bylo toto omezení odstraněno implementací schopnosti paralelizovat operace čtení z úložiště objektů. Ve výchozím nastavení je počet vláken nastaven na počet jader CPU, což nyní ve většině případů nevyžaduje explicitní nastavení volby „-threads“.
Přidána podpora automatického doplňování vstupu dílčích příkazů, cest, odkazů a dalších argumentů příkazu „git worktree“, což umožňuje pracovat s několika pracovními kopiemi úložiště.
Přidána podpora pro jasné barvy, které mají ANSI escape sekvence. Například v nastavení barev zvýraznění „git config –color“ nebo „git diff –color-moved“ můžete zadat „%C(jasně modrá)“ pomocí možnosti „--format“ pro jasně modrou.
Přidána nová verze skriptu fsmonitor-watchmanzajišťující integraci s mechanismem Facebook Watchman pro urychlení sledování změn souborů a vzhledu nových souborů. Po aktualizaci je vyžadován git vyměnit háček v úložišti.
Přidány optimalizace pro urychlení částečných klonů při použití bitmap
(bitmapový stroj), aby se zabránilo úplnému prohledání všech objektů při filtrování výstupu. Nyní se provádí kontrola kuliček (—filter=blob:none a —filter=blob:limit=n) během částečného klonování
výrazně rychlejší. GitHub oznámil opravy s těmito optimalizacemi a experimentální podporou částečného klonování.
Příkaz „git rebase“ byl přesunut do jiného backendu s použitím výchozího mechanismu „merge“ (dříve používaného pro „rebase -i“) namísto „patch+apply“. Backendy se v některých malých ohledech liší, například po pokračování operace po vyřešení konfliktu (git rebase --continue) nový backend nabízí úpravu zprávy odevzdání, zatímco starý jednoduše použil starou zprávu. Chcete-li se vrátit ke starému chování, můžete použít možnost „--apply“ nebo nastavit konfigurační proměnnou „rebase.backend“ na „apply“.
Příklad obslužné rutiny pro autentizační parametry specifikované přes .netrc byl zredukován na formu vhodnou pro použití ihned po vybalení.
Přidáno nastavení gpg.minTrustLevel pro nastavení minimální úrovně důvěryhodnosti pro různé prvky, které provádějí ověřování digitálního podpisu.
Přidána možnost „--pathspec-from-file“ do „git rm“ a „git stash“.
Vylepšování testovacích sad pokračovalo v rámci přípravy na přechod na algoritmus hash SHA-2 namísto SHA-1.