Vydanie distribuovaného zdrojového riadiaceho systému Git 2.22

Predloženej uvoľnenie distribuovaného systému riadenia zdroja Git 2.22.0. 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 používa implicitné hashovanie celej predchádzajúcej histórie v každom commite a taktiež je možné jednotlivé tagy a commity certifikovať digitálnymi podpismi vývojárov.

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

  • Nový režim rebase potvrdenia, ktorý je k dispozícii od vydania 1.18, „git rebase --rebase-merges“ nahrádza starú možnosť „--preserve-merges“, ktorá je teraz zastaraná. Operácia „git rebase“ sa používa na nahradenie série odovzdaní novým základným odovzdaním, napríklad na presun samostatnej vetvy, ktorá vyvíja nejakú novú funkciu, do aktuálneho stavu hlavnej vetvy, ktorá zahŕňa opravy pridané po vetve. :

    o - o - o (moja vlastnosť)

    /

    o - o - o - o - o (majster)

    o - o - o (moja vlastnosť)

    /

    o - o - o - o - o (majster)

    Na zachovanie štruktúry vetvy v migrovanej vetve sa predtým dala použiť možnosť „--preserve-merges“, ktorá pri spustení v interaktívnom režime (git rebase -i --preserve-merges) umožňovala upravovať históriu odovzdania, ale nezaručila úplné zachovanie štruktúry úložiska. Nový režim „--rebase-merges“ vám umožňuje zachovať štruktúru zmien v migrovanej vetve a zároveň poskytuje celý rad interaktívnych operácií vrátane vymazania, preskupenia a premenovania odovzdaní.

    Napríklad "--rebase-merges" umožňuje opätovné odovzdanie odovzdania zo samostatnej vetvy do novšej hlavnej vetvy pri zachovaní štruktúry vetvy v migrovanej vetve a vykonanie niektorých zmien v poznámkach k odovzdaniu za behu.

  • Pridaná podpora pre vytvorenie novej vetvy na základe výsledku určenia zlučovacej bázy dvoch ďalších vetiev (zlučovacia báza, väzba na spoločného predka) pomocou konštrukcií “git branch new A...B” a “git checkout -b new A...B“, v ktorom „A ...B“ zahŕňa definovanie zlučovacej bázy medzi dvoma špecifikovanými odovzdaniami, podobne ako „git checkout A...B“ posúva HEAD na základnú odovzdanie a „rozdiel A. ..B" ukazuje zmeny medzi odovzdaním "B" a tým istým ako odovzdaním "A" "Predok.

    Napríklad pri práci na samostatnej vetve s mojou funkciou možno túto funkciu použiť, keď chcete začať z inej vetvy, napríklad z rovnakého miesta v hlavnej vetve, z ktorej bola odvolaná vetva s mojou funkciou. Predtým to vyžadovalo manuálne preskúmanie protokolu zmien, čo bolo nepohodlné, ak ste mali veľkú históriu zmien, a potom spustenie „git merge-base master my-feature“ na výpočet hash zlučovacej bázy medzi hlavnými a my-feature vetvami. a vytvorenie novej vetvy vzhľadom na spoločného predka „git branch my-other-feature hash“. V Git 2.22 môžete použiť syntax "git branch my-other-feature A...B" na vytvorenie vetvy relatívne k zlučovacej báze dvoch ďalších vetiev;

  • Pridaná možnosť "git branch --show-current" na zobrazenie názvu pobočky získanej počas operácie pokladne;
  • Pridaná možnosť „git checkout —no-overlay — dir“, ktorá umožňuje pri vykonávaní operácie checkout preniesť obsah adresára dir do formy, ktorá plne zodpovedá stavu hlavnej vetvy. Napríklad, ak sa v lokálnej kópii adresára dir nachádza súbor, ktorý nie je v hlavnej vetve, potom pri spustení „git checkout master - dir“ bude predvolene ponechaný a ak „--no-overlay“ ” je zadaná, bude vymazaná;
  • Príkaz "git diff" používa univerzálne API na analýzu volieb, čo umožňuje zjednotiť prácu s voľbami s inými nástrojmi git. Napríklad v „git diff“ majú teraz všetky možnosti svojich antagonistov („--function-context“ a „--no-function-context“);
  • Pridaná možnosť filtrovania rozšírených značiek pripojených k odovzdaniam vo výstupe „git log“ („upútavka“ – ďalšie informačné príznaky, ako napríklad Signed-off-by a Co-authored-by). Štítky je možné filtrovať podľa kľúča aj hodnoty, napríklad:
    "git log --pretty="%(upútavky:key=Recenzovaný,len hodnota)";

  • Bol pridaný nový sledovací mechanizmus Trace2, ktorý ponúka flexibilnejší a štruktúrovanejší formát výstupu. Trace2 vám umožňuje zhromažďovať telemetriu o vykonaných operáciách a údaje o výkone pre podrobnejšiu analýzu a ladenie (obslužný program je priradený používateľom, žiadne údaje sa neposielajú externe);
  • Prehľad „git bisect“ sa stal čitateľnejším, v ktorom sú teraz jasnejšie zvýraznené problematické commity a sú zobrazené súhrnné štatistiky o zmenách pre každý súbor (na úrovni počtu zmenených riadkov);
  • Heuristika na určovanie premenovania adresárov bola prepracovaná, aby sa eliminovala falošná inštalácia menoviek premenovania. Ak máte pochybnosti, takéto adresáre sú teraz označené ako konfliktné;
  • Upozornenie sa zobrazí, keď sa pokúsite nainštalovať značku na inú značku, čo sa zvyčajne deje omylom a môže viesť k nastaveniu značky na nesprávne potvrdenie (napríklad konštrukcia ako „git tag -f -m „aktualizovaná správa“ my-tag1 my-tag2″ povedie k vytvoreniu značky na starej značke, zatiaľ čo vývojár očakával, že nová značka bude nainštalovaná na odovzdaní, na ktoré ukazuje stará značka);
  • Generovanie je povolené pre archívy bitových máp (štruktúra bitmapových máp na báze disku), ktoré ukladajú údaje o súboroch objektov dostupných pre každé odovzdanie a umožňujú vám rýchlo určiť prítomnosť základného objektu. Táto štruktúra výrazne znižuje čas vykonávania operácií načítania údajov (git fetch).

Zdroj: opennet.ru

Pridať komentár