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

Po třech měsících vývoje byl uvolněn distribuovaný zdrojový řídicí systém Git 2.36. 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ímu vydání bylo do nové verze, připravené za účasti 717 vývojářů, přijato 96 změn, z nichž 26 se podílelo na vývoji poprvé. Hlavní inovace:

  • Příkazy „git log“ a „git show“ nyní mají možnost „—remerge-diff“, která vám umožňuje zobrazit rozdíly mezi celkovým výsledkem sloučení a skutečnými daty, která se projeví v odevzdání po zpracování příkazu „merge“. , která vám umožní jasně vyhodnotit změny provedené v důsledku vyřešení konfliktů při sloučení. Normální příkaz "git show" odsadí různá řešení konfliktů, takže je obtížné porozumět změnám. Například na snímku obrazovky pod řádkem „+/-“ bez odsazení ukazuje poslední řešení konfliktu spojeného s přejmenováním sha1 na oid v komentáři v první větvi a „+/-“ s odsazením ukazuje počáteční vyřešení konfliktu způsobeného výskytem dalšího argumentu ve druhé větvi funkce dwim_ref().
    Vydání ovládání zdroje Git 2.36

    Při použití možnosti "--remerge-diff" nejsou rozdíly mezi řešeními konfliktů odděleny pro každou nadřazenou větev, ale jsou zobrazeny celkové rozdíly mezi souborem, který má konflikty sloučení, a souborem, který má konflikty vyřešeny.

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

  • Zvýšená flexibilita při konfiguraci chování pro vyprázdnění diskové mezipaměti prostřednictvím volání funkce fsync(). Dříve dostupný parametr core.fsyncObjectFiles byl rozdělen do dvou konfiguračních proměnných core.fsync a core.fsyncMethod, což poskytuje možnost aplikovat fsync nejen na soubory objektů (.git/objects), ale také na další struktury git, jako jsou odkazy ( .git /refs), soubory reflog a pack.

    Pomocí proměnné core.fsync můžete zadat seznam interních struktur Git, pro které bude po operaci zápisu navíc volána fsync. Proměnná core.fsyncMethod vám umožňuje vybrat metodu pro vyprázdnění mezipaměti, například můžete vybrat fsync pro použití stejnojmenného systémového volání nebo zadat writeout-only pro použití zpětného zápisu pagecache.

  • Pro ochranu před zranitelnostmi, které manipulují s nahrazováním adresářů .git jinými uživateli do sdílených sekcí, bylo posíleno ověřování vlastníka úložiště. Spouštění jakýchkoli příkazů git je nyní povoleno pouze v jejich vlastních adresářích „.git“. Pokud adresář s úložištěm patří jinému uživateli, pak se standardně zobrazí chyba. Toto chování lze zakázat pomocí nastavení safe.directory.
  • Příkaz „git cat-file“, určený pro výstup zdrojového obsahu objektů Git, byl doplněn o možnost „--batch-command“, která doplňuje dříve dostupné „--batch“ a „--batch-check“. ” příkazy s možností adaptivního výběru typu výstupu pomocí „ content <object>“ pro zobrazení obsahu nebo „info <object>“ pro zobrazení informací o objektu. Navíc je podporován příkaz "flush" pro vyprázdnění výstupní vyrovnávací paměti.
  • K příkazu „git ls-tree“, určenému pro generování seznamu obsahu stromu objektů, byla přidána možnost „—oid-only“ („—object-only“), podobně jako „—name-only “, zobrazující pouze identifikátory objektů pro zjednodušení volání ze skriptů. Implementována je také možnost „--format“, která vám umožňuje definovat svůj vlastní výstupní formát kombinací informací o režimu, typu, názvu a velikosti.
  • Příkaz „git bisect run“ implementuje detekci nenastavování příznaku spustitelného souboru pro skript a v tomto případě zobrazení chyb s kódy 126 nebo 127 (dříve, pokud skript nebylo možné spustit, byly všechny revize označeny jako problémy) .
  • Do příkazu "git fetch" byla přidána možnost --refetch pro načtení všech objektů bez informování druhé strany o obsahu, který je již na lokálním systému. Toto chování může být užitečné při obnově po selhání, když je nejistá integrita místních dat.
  • Příkazy "git update-index", "git checkout-index", "git read-tree" a "git clean" nyní podporují částečné indexy (řídký index) pro zlepšení výkonu a úsporu místa v úložištích, kde se provádějí dílčí operace. cloning (řídká pokladna).
  • Chování příkazu „git clone —filter=… —recurse-submodules“ bylo změněno, což nyní vede k částečnému klonování submodulů (dříve se při provádění takových příkazů filtr aplikoval pouze na hlavní obsah a submoduly byly klonováno zcela bez zohlednění filtru).
  • Příkaz "git bundle" přidal podporu pro specifikaci filtrů pro selektivní umístění obsahu, podobně jako u operací částečného klonování.
  • Přidána možnost "--recurse-submodules" do příkazu "git branch" pro rekurzivní procházení submodulů.
  • Userdiff nabízí nový handler pro jazyk Kotlin.

Zdroj: opennet.ru

Přidat komentář