Vydání systému pro správu verzí Git 2.45

Po dvou měsících vývoje byla publikována verze distribuovaného systému správy zdrojových kódů Git 2.45. Git je jedním z nejpopulárnějších, nejspolehlivějších a vysoce výkonných systémů pro řízení verzí, který poskytuje flexibilní prostředky pro nelineární vývoj založené na větvení a sloučení větví. Pro zajištění integrity historie a odolnosti vůči změnám "zpětně" se používá implicitní hashing celé předchozí historie v každém commitu, a je také možné ověřit digitálními podpisy jednotlivých vývojářů u tagů a commitů. Kód Git je distribuován pod licencí GPLv2+.

Ve srovnání s předchozím vydáním byla do nové verze přijata 540 změn, na kterých se podílelo 96 vývojářů, z nichž 35 se poprvé účastnilo vývoje. Hlavní novinky:

  • Byla přidána předběžná podpora backendu „reftable“ pro efektivní ukládání odkazů na větve a tagy v repozitáři. Nový backend používá blokové úložiště, které je aplikováno projektem JGit a je optimalizováno pro ukládání velmi velkého počtu odkazů (tradiční formáty ukládání odkazů vedou v repozitářích s velkým počtem odkazů k znatelným nákladům kvůli umístění velmi velkého počtu souborů v jednom adresáři v případě, že se odkazy ukládají v adresáři $GIT_DIR/refs, nebo nutnosti přepsání jednoho velkého souboru při každé aktualizaci v případě, že se odkazy ukládají v souboru $GIT_DIR/packed_refs). Nový backend se aktivuje pomocí volby „—ref-format=reftable“ při inicializaci repozitáře („git init —ref-format=reftable /path/to/repo“) a umožňuje zrychlit vyhledávání, čtení a zápis v repozitářích s velkým počtem odkazů.
  • Byly poskytnuty prostředky pro zajištění přenositelnosti mezi identifikátory objektů založenými na hashe SHA-1 a SHA-256. Pro zajištění práce s hashe SHA-1 a SHA-256 v jednom repozitáři v průběhu postupné migrace na hashe SHA-256 byl navržen nový formát objektů „compatibility“, který umožňuje odkazovat na objekty nejen podle hlavního hashe zadaného při inicializaci repozitáře, ale také podle záložního hashe. Například při inicializaci repozitáře lze zvolit formát SHA-256, a jako záložní definovat hash SHA-1: git init —object-format=sha256 /path/to/repo cd /path/to/repo git config extensions.compatObjectFormat sha1
  • Do týmu „git rev-list“ byla přidána možnost zobrazit identifikátory objektů, které chybí v místním repozitáři, i když jsou nedosažitelné ve větvi nebo značce, což může být využito k diagnostice poškození repozitáře: git rev-list —missing=print —all | grep ‘^?’ ?70678e7afeacdcba1242793c3d3d28916a2fd152
  • Byl přidán nový příkaz „git reflog list“ pro zobrazení známých reflogů a odpovídajících odkazů na značky a větve.
  • Byla poskytnuta možnost definovat alternativní prefixy pro výstup „git diff“, které se zobrazují před cestou k souboru a označují stav před a po určité verzi souboru (výchozí prefixy jsou „a/“ a „b/“). Nové parametry diff.srcPrefix a diff.dstPrefix byly přidány pro nastavení vlastních prefixů v konfiguraci.
  • Byl přidán parametr core.commentString pro určení oddělovacího řetězce, který bude použit místo znaku „#“ pro ignorování komentářů v zprávě pro commit. Dříve dostupné nastavení core.commentChar bylo přizpůsobeno pro podporu vícibytných znaků jako oddělovače komentářů (dříve byly podporovány pouze znaky ASCII).
  • Do příkazu „git config“ byla přidána volba „—comment“, která umožňuje ukládat komentáře do souboru .gitconfig pro objasnění povahy určitých nastavení. git config —comment ‘to show the merge base’ merge.conflictStyle diff3 tail -n 2 .git/config [merge] conflictStyle = diff3 # to show the merge base
  • Do příkazu „git cherry-pick“ byla přidána volba „—empty“ pro automatické odstraňování nadbytečných commitů, analogicky k volbě „—empty“ v git-rebase a git-am.
  • V příkazu „git checkout -p“ bylo povoleno používat znak „@“ jako synonymum pro název „HEAD“.

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster