Vydanie ovládania zdroja Git 2.35

Po dvoch mesiacoch vývoja bol vydaný distribuovaný systém riadenia zdrojov Git 2.35. Git je jedným z najpopulárnejších, najspoľahlivejších a najvýkonnejších systémov na správu verzií, ktorý poskytuje flexibilné nelineárne vývojové nástroje založené na vetvení a zlučovaní. Na zabezpečenie integrity histórie a odolnosti voči retroaktívnym zmenám sa v každom commite používa implicitné hashovanie celej predchádzajúcej histórie, je tiež možné certifikovať jednotlivé tagy a commity digitálnymi podpismi vývojárov.

Oproti predchádzajúcemu vydaniu obsahovala nová verzia 494 zmien, pripravených za účasti 93 vývojárov, z ktorých 35 sa podieľalo na vývoji po prvýkrát. Hlavné inovácie:

  • Rozšírili sa možnosti používania kľúčov SSH na digitálne podpisovanie objektov Git. Pre obmedzenie doby platnosti viacerých kľúčov pribudla podpora direktív OpenSSH „valid-before“ a „valid-after“, pomocou ktorých si zabezpečíte správnu prácu s podpismi po otočení kľúča jedným z vývojárov. Predtým sa vyskytol problém s oddelením podpisov starým a novým kľúčom - ak vymažete starý kľúč, nebude možné overiť podpisy s ním vytvorené, a ak ho necháte, zostane možné vytvorte nové podpisy pomocou starého kľúča, ktorý už bol nahradený iným kľúčom. Pomocou valid-before a valid-after môžete oddeliť rozsah kľúčov podľa času vytvorenia podpisu.
  • V nastavení merge.conflictStyle, ktoré umožňuje vybrať režim zobrazovania informácií o konfliktoch počas zlučovania, sa objavila podpora režimu „zdiff3“, ktorý presúva všetky štandardné riadky zadané na začiatku alebo na konci konfliktu mimo konflikt. oblasť, ktorá umožňuje kompaktnejšiu prezentáciu informácií.
  • Do príkazu „git stash“ bol pridaný režim „--staged“, ktorý vám umožňuje skryť iba zmeny pridané do indexu, napríklad v situácii, keď potrebujete dočasne odložiť niektoré zo zložitých zmien, aby ste najskôr pridajte to, čo je už pripravené, a po chvíli sa vysporiadajte so zvyškom. Režim je podobný príkazu „git commit“, zapisuje len zmeny umiestnené v indexe, ale namiesto vytvorenia nového odovzdania v „git stash —staged“ sa výsledok uloží do dočasnej oblasti stash. Akonáhle sú potrebné zmeny, možno ich vrátiť späť pomocou príkazu „git stash pop“.
  • Do príkazu „git log“ bol pridaný nový špecifikátor formátu „-format=%(describe)“, ktorý vám umožňuje skombinovať výstup „git log“ s výstupom príkazu „git description“. Parametre pre "git description" sú špecifikované priamo v špecifikátore ("-format=%(describe:match= ,vylúčiť= )"), do ktorého môžete zahrnúť aj skrátené značky ("—format=%(describe:tags= )") a nakonfigurujte počet hexadecimálnych znakov na identifikáciu objektov („—format=%(describe:abbrev= )"). Ak chcete napríklad uviesť zoznam posledných 8 potvrdení, ktorých značky nemajú značku kandidáta na vydanie, a špecifikovať 8-znakové identifikátory, môžete použiť prí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.1d643b2 gb95bd94 bbc056f2.34.1 v642-56-gffb95f8d v7-2.34.1- gdf203c9adeb2980902 v2.34.1-640-g3b41a212
  • Nastavenie user.signingKey teraz podporuje nové typy kľúčov, ktoré nie sú obmedzené na typ „ssh-“ a určujú úplnú cestu k súboru ku kľúču. Alternatívne typy sú špecifikované pomocou predpony "key::", napríklad "key::ecdsa-sha2-nistp256" pre kľúče ECDSA.
  • Výrazne sa zvýšila rýchlosť generovania zoznamu zmien v režime „—histogram“, ako aj pri použití možnosti „—color-moved-ws“, ktorá ovláda zvýraznenie medzier vo farebnom rozdiele.
  • Príkaz "git jump", ktorý sa používa na poskytnutie informácií Vimu o presnom skoku na požadovanú pozíciu v súbore pri analýze konfliktov zlučovania, prezeraní rozdielov alebo vykonávaní operácie vyhľadávania, poskytuje možnosť zúžiť pokryté konflikty zlučovania. Ak chcete napríklad obmedziť operácie iba na adresár „foo“, môžete zadať „git jump merge - foo“ a na vylúčenie adresára „Documentation“ zo spracovania – „git jump merge - ':^Documentation'“
  • Pracovalo sa na štandardizácii použitia typu „size_t“ namiesto „unsigned long“ pre hodnoty reprezentujúce veľkosť objektov, čo umožnilo použiť filtre „clean“ a „smudge“ so súbormi väčšími ako 4 GB. na všetkých platformách, vrátane platforiem s dátovým modelom LLP64 , typ „unsigned long“, v ktorom je obmedzený na 4 bajty.
  • Do príkazu „git am“ bola pridaná možnosť „-empty=(stop|drop|keep)“, ktorá vám umožňuje vybrať správanie pre prázdne správy, ktoré neobsahujú záplaty pri analýze záplat z poštovej schránky. Hodnota „stop“ ukončí celú operáciu opravy, „drop“ preskočí prázdnu opravu a „keep“ vytvorí prázdne odovzdanie.
  • Pridaná podpora pre čiastočné indexy (riedky index) do príkazov "git reset", "git diff", "git obvinění", "git fetch", "git pull" a "git ls-files" na zlepšenie výkonu a šetrenie miesta v repository , v ktorých sa vykonávajú čiastočné klonovacie operácie (sparse-checkout).
  • Príkaz "git sparse-checkout init" bol zastaraný a mal by byť nahradený "git sparse-checkout set".
  • Pridaná počiatočná implementácia nového „refundovateľného“ backendu na ukladanie referencií, ako sú vetvy a značky, v úložisku. Nový backend využíva blokové úložisko používané projektom JGit a je optimalizované na ukladanie veľmi veľkého počtu referencií. Backend ešte nie je integrovaný so systémom refs a nie je pripravený na praktické použitie.
  • Paleta farieb príkazu "git grep" bola upravená tak, aby zodpovedala nástroju GNU grep.

Zdroj: opennet.ru

Pridať komentár