Vydání ovládání zdroje Git 2.35

Po dvou měsících vývoje byl uvolněn distribuovaný zdrojový řídicí systém Git 2.35. 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 494 změn, připravených za účasti 93 vývojářů, z nichž 35 se podílelo na vývoji poprvé. Hlavní inovace:

  • Možnosti použití klíčů SSH k digitálnímu podepisování objektů Git byly rozšířeny. Pro omezení doby platnosti několika klíčů byla přidána podpora direktiv OpenSSH „valid-before“ a „valid-after“, pomocí kterých můžete zajistit správnou práci s podpisy po otočení klíče jedním z vývojářů. Předtím byl problém s oddělením podpisů starým a novým klíčem - pokud starý klíč smažete, nebude možné ověřit podpisy s ním vytvořené, a pokud jej ponecháte, zůstane možné vytvořit nové podpisy pomocí starého klíče, který již byl nahrazen jiným klíčem. Pomocí valid-before a valid-after můžete oddělit rozsah klíčů podle času vytvoření podpisu.
  • V nastavení merge.conflictStyle, které umožňuje vybrat režim zobrazení informací o konfliktech při slučování, se objevila podpora režimu „zdiff3“, který všechny standardní řádky zadané na začátku nebo na konci konfliktu přesune mimo konflikt. oblast, která umožňuje kompaktnější prezentaci informací.
  • Do příkazu „git stash“ byl přidán režim „--staged“, který umožňuje skrýt pouze změny přidané do indexu, například v situaci, kdy potřebujete dočasně odložit některé složité změny, abyste nejprve přidejte to, co je již připraveno, a po chvíli se vypořádejte se zbytkem. Režim je podobný příkazu „git commit“, zapisuje pouze změny umístěné do indexu, ale místo vytvoření nového odevzdání v „git stash —staged“ se výsledek uloží do dočasné oblasti stash. Jakmile jsou změny potřeba, lze je vrátit pomocí příkazu „git stash pop“.
  • Do příkazu „git log“ byl přidán nový specifikátor formátu „-format=%(describe)“, který umožňuje kombinovat výstup „git log“ s výstupem příkazu „git description“. Parametry pro "git description" jsou specifikovány přímo uvnitř specifikátoru ("-format=%(describe:match= ,vyloučit= )"), do kterého můžete zahrnout i zkrácené značky ("—format=%(describe:tags= )") a nakonfigurujte počet hexadecimálních znaků k identifikaci objektů („—format=%(describe:abbrev= )"). Chcete-li například vypsat posledních 8 odevzdání, jejichž značky nemají značku kandidáta na vydání, a zadat 8znakové identifikátory, můžete použít příkaz: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1g643b v2g95b94 056-gb2.34.1bd 642bbc56f95 v8-7-gffb2.34.1f203d v9-2980902- gdf2.34.1c640adeb3 v41-212-g2.34.1b639a36
  • Nastavení user.signingKey nyní podporuje nové typy klíčů, které nejsou omezeny na typ „ssh-“ a určují úplnou cestu k souboru ke klíči. Alternativní typy jsou specifikovány pomocí předpony "key::", například "key::ecdsa-sha2-nistp256" pro klíče ECDSA.
  • Znatelně se zvýšila rychlost generování seznamu změn v režimu „—histogram“ i při použití volby „—color-moved-ws“, která ovládá zvýraznění mezer v barevném rozdílu.
  • Příkaz "git jump", který se používá k poskytování informací Vimu o přesném skoku na požadovanou pozici v souboru při analýze konfliktů sloučení, prohlížení rozdílů nebo provádění operace vyhledávání, poskytuje možnost zúžit pokrytí konfliktů sloučení. Chcete-li například omezit operace pouze na adresář "foo", můžete zadat "git jump merge - foo" a pro vyloučení adresáře "Documentation" ze zpracování - "git jump merge - ':^Documentation'"
  • Pracovalo se na standardizaci použití typu „size_t“ místo „unsigned long“ pro hodnoty představující velikost objektů, což umožnilo používat filtry „clean“ a „smudge“ se soubory většími než 4 GB. na všech platformách, včetně platforem s datovým modelem LLP64, typ „unsigned long“, ve kterém je omezena na 4 bajty.
  • Do příkazu „git am“ byla přidána možnost „-empty=(stop|drop|keep)“, která vám umožňuje vybrat chování pro prázdné zprávy, které neobsahují záplaty při analýze záplat z poštovní schránky. Hodnota „stop“ ukončí celou operaci patchování, „drop“ přeskočí prázdný patch a „keep“ vytvoří prázdný odevzdání.
  • Přidána podpora pro částečné indexy (řídký index) do příkazů "git reset", "git diff", "git obvinění", "git fetch", "git pull" a "git ls-files" pro zlepšení výkonu a úsporu místa v repozitáře , ve kterých se provádějí částečné klonovací operace (sparse-checkout).
  • Příkaz "git sparse-checkout init" byl zastaralý a měl by být nahrazen "git sparse-checkout set".
  • Přidána počáteční implementace nového "reftable" backendu pro ukládání referencí, jako jsou větve a značky, v úložišti. Nový backend využívá blokové úložiště používané projektem JGit a je optimalizován pro ukládání velmi velkého počtu referencí. Backend ještě není integrován se systémem refs a není připraven pro praktické použití.
  • Paleta barev příkazu "git grep" byla upravena tak, aby odpovídala nástroji GNU grep.

Zdroj: opennet.ru

Přidat komentář