Vydání distribuovaného systému řízení zdrojů Git 2.25

Dostupný vydání distribuovaného systému řízení zdrojů Git 2.25.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 583 změn, připravených za účasti 84 vývojářů, z nichž 32 se podílelo na vývoji poprvé. hlavní inovace:

  • Možnost částečného klonování se blíží ke stabilizaci a plné připravenosti umožňující přenášet pouze část dat a pracovat s neúplnou kopií úložiště. Typický klon zkopíruje všechna data z úložiště, včetně všech verzí každého souboru v historii změn. U velmi velkých úložišť má kopírování dat za následek výrazné zvýšení provozu a místa na disku, i když se vývojář zajímá pouze o podmnožinu souborů. Aby bylo snazší načíst pouze část pracovního zdrojového stromu, nové vydání zavádí experimentální příkaz "sparse-checkout" a novou volbu "--sparse" pro příkaz "clone".

    Dříve se proces selektivního klonování prováděl prostřednictvím úlohy filtry pro odfiltrování nepotřebného obsahu a možnost „—no-checkout“ pro zakázání vyplňování chybějících souborů. Poté, před provedením operace pokladny, bylo nutné povolit nastavení core.sparseCheckout a definovat seznam vyloučených vzorů cest v souboru .git/info/sparse-checkout. Chcete-li například klonovat bez objektů blob a zabránit extrahování souborů z podadresářů hloubky 2 nebo více, můžete spustit:

    git clone --filter=blob:none --no-checkout /vaše/úložiště/zde repo
    $cd repo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git pokladna .

    Nový příkaz „git sparse-checkout“ výrazně zjednodušuje práci a omezuje proces organizování práce s neúplným úložištěm na následující příkazy:

    git clone --filter=blob:none --sparse /vaše/úložiště/zde repo
    git sparse-checkout set /path/to/check/out

    Příkaz sparse-checkout umožňuje nastavit seznam cest pro checkout (set) bez ručního konfigurování .git/info/sparse-checkout, stejně jako zobrazit aktuální seznam cest (list) a povolit nebo zakázat částečné checkouty (enable /zakázat).

    Chcete-li optimalizovat práci s velmi velkými repozitáři a seznamy šablon, „git config core.sparseCheckoutCone", který omezuje povolené vzory (místo libovolných vzorů .gitignore můžete určit, zda mají být vyhrazeny všechny cesty a všechny soubory v daném podadresáři). Pokud má například velké úložiště adresář „A/B/C“ a veškerá práce je soustředěna v podadresáři „C“, pak když povolíte režim sparseCheckoutCone, příkaz „git sparse-checkout set A/B/ C“ extrahuje celý obsah „C“, ale z „A“ a „B“ extrahuje pouze části nezbytné pro práci s „C“.

  • Z dokumentace ("git rebase -h") byly odstraněny všechny odkazy na volbu "--preserve-merges", která byla zastaralá a měla by být použita místo toho k migraci sady odevzdání.git rebase --rebase-merges".
  • Aby se zlepšila čitelnost zpráv s opravami zasílanými do e-mailových konferencí, byla přidána možnost „git format-patch —cover-from-description subject“, když je zadán, první odstavec z textu popisu pobočky se použije jako předmět průvodní dopis pro sadu záplat.
  • Implementovaná podpora pro kombinované použití příkazu „git apply -3way“ a nastavení „merge.conflictStyle“ („git apply“ nyní bere v úvahu styl popisu konfliktu z merge.conflictStyle, když je nutné konflikt vyřešit po pokusu pro použití opravného souboru na úložiště).
  • Kód definice funkce používaný v operacích jako "git diff/grep --show-function/-function-context" byl rozšířen, aby podporoval definování hranic funkcí v jazykových programech. Elixír.
  • Do příkazů „git add“, „git commit“, „git reset“ a dalších příkazů byla přidána nová možnost – „-pathspec-from-file“, která umožňuje načíst seznam cest ze souboru nebo vstupního proudu , namísto jejich výpisu na příkazovém řádku.
  • Problém s detekcí přejmenování na úrovni adresáře při zápisu potvrzení byl vyřešen. Definice nefungovala, pokud byl obsah podadresáře přesunut do kořenového adresáře úložiště.
  • Byla navržena počáteční implementace přepracovaného příkazu „git add -i“, který umožňuje interaktivně přidávat změněný obsah, přepsaný z Perlu do C. Probíhá podobná přepracování příkazu „git add -p“.
  • Příkaz „git log –graph“ byl přepracován a generuje ASCII obrázek grafu s historií změn v úložišti. Přepracování umožnilo výrazně vylepšit a zjednodušit výstup bez narušení struktury příběhu, čímž se například vyřešil problém s přesahem obrazu za koncovou šířku čáry.
  • Volba "git log --format=.." vám umožňuje změnit výstupní formát,
    rozšířena o podporu příznaků „l/L“ pro zobrazení pouze části e-mailové adresy uvedené před symbolem „@“ (například užitečné, když mají všichni vývojáři všechny e-maily ve stejné doméně).

  • Přidán podpříkaz „set-url“ do příkazu „git submodule“.
  • Testovací soupravy byly aktualizovány v rámci přípravy na přechod na
    hashovací algoritmus SHA-2 namísto SHA-1.

Zdroj: opennet.ru

Přidat komentář