Útgáfa dreifðu upprunastýringarkerfisins Git 2.22

Kynnt losun dreifðs heimildastýringarkerfis git 2.22.0. Git er eitt vinsælasta, áreiðanlegasta og afkastamesta útgáfustýringarkerfið, sem býður upp á sveigjanleg ólínuleg þróunarverkfæri sem byggjast á greiningu og sameiningu. Til að tryggja heilleika sögunnar og mótstöðu gegn afturvirkum breytingum, er óbein hashing á allri fyrri sögu í hverri skuldbindingu notuð og einnig er hægt að votta einstök merki og skuldbindingar með stafrænum undirskriftum þróunaraðila.

Í samanburði við fyrri útgáfu innihélt nýja útgáfan 745 breytingar, unnar með þátttöku 74 þróunaraðila, þar af 18 sem tóku þátt í þróun í fyrsta skipti. Helstu nýjungar:

  • Í boði frá útgáfu 1.18, nýja commit rebase hátturinn „git rebase --rebase-merges“ kemur í stað gamla „--preserve-merges“ valmöguleikans, sem er nú úreltur. "git rebase" aðgerðin er notuð til að skipta út röð skuldbindinga fyrir nýja grunnframkvæmd, til dæmis til að færa sérstaka grein sem er að þróa nýjan eiginleika í núverandi stöðu aðalútibúsins, sem inniheldur lagfæringar sem bætt er við eftir greinina :

    o - o - o (mín eiginleiki)

    /

    o - o - o - o - o (meistari)

    o - o - o (mín eiginleiki)

    /

    o - o - o - o - o (meistari)

    Til að varðveita útibúsbygginguna í fluttri grein var áður hægt að nota „--preserve-merges“ valmöguleikann, sem, þegar keyrt var í gagnvirkum ham (git rebase -i --preserve-merges), leyfði breytingu á skuldbindingarsögunni, en tryggði ekki fullkomna varðveislu á uppbyggingu geymslunnar. Nýja „--rebase-merges“ hamurinn gerir þér kleift að varðveita uppbyggingu breytinga á útibúinu sem verið er að flytja, á sama tíma og þú býður upp á alhliða gagnvirka aðgerðir, þar á meðal að eyða, endurflokka og endurnefna skuldbindingar.

    Til dæmis, "--rebase-merges" gerir endurhlaða skuldbindingum úr sérstakri grein yfir í nýrri aðalgrein, en viðhalda útibúsbyggingunni í fluttu greininni og gera nokkrar breytingar á skuldbindingarnótunum á flugi.

  • Bætti við stuðningi við að búa til nýja útibú byggt á niðurstöðu þess að ákvarða samrunagrunn tveggja annarra útibúa (samrunagrunn, binding við sameiginlegan forföður) með því að nota smíðarnar „git branch new A...B“ og „git checkout -b new A...B“, þar sem „A ...B“ felur í sér að skilgreina samrunagrunn á milli tveggja tilgreindra commits, svipað og „git checkout A...B“ færir HEAD í grunn commit og „diff A. ..B" sýnir breytingar á milli commit "B" og sama og commit "A" "Forfaðir.

    Til dæmis, þegar unnið er að sérstakri my-feature grein, þá er hægt að nota þennan eiginleika þegar þú vilt byrja frá annarri grein, til dæmis frá sama stað í aðalútibúinu sem my-feature greinin var skráð úr. Áður þurfti þetta að kanna breytingaskrána handvirkt, sem var óþægilegt ef þú varst með mikla breytingasögu, og keyra síðan „git merge-base master my-feature“ til að reikna út kjötkássa samrunagrunnsins á milli master og my-feature greinanna og búa til nýja grein miðað við sameiginlegan forföður "git branch my-other-feature hash." Í Git 2.22 geturðu notað setningafræðina "git branch my-other-feature A...B" til að búa til grein miðað við samrunagrunn tveggja annarra útibúa;

  • Bætt við "git branch --show-current" valmöguleika til að sýna nafn útibúsins sem fékkst við útskráningu;
  • Bætti við „git checkout —no-overlay — dir“ valmöguleikanum, sem gerir kleift, þegar þú framkvæmir afgreiðsluaðgerð, að koma innihaldi dir möppunnar á form sem samsvarar að fullu ástandi aðalútibúsins. Til dæmis, ef það er skrá í staðbundnu afritinu af dir möppunni sem er ekki í master útibúinu, þá verður hún sjálfgefið eftir þegar „git checkout master - dir“ er keyrt, og ef „--no-overlay ” valkostur er tilgreindur, honum verður eytt;
  • "git diff" skipunin notar alhliða API fyrir þáttun valkosta, sem gerir það mögulegt að sameina valmöguleika meðhöndlun með öðrum git tólum. Til dæmis, í „git diff“, hafa allir valmöguleikar nú sína mótstöðu ("--fallasamhengi" og "--engin-fallasamhengi");
  • Bætti við möguleikanum á að sía útbreidd merki sem eru tengd við skuldbindingar í „git log“ úttakinu („kerru“ - viðbótarupplýsingarfánar, svo sem Signed-off-by og Co-authored-by). Það er hægt að sía merki eftir bæði lykli og gildi, til dæmis:
    "git log --pretty="%(trailers:key=Reviewed-by,valueonly)";

  • Ný rekjavél, Trace2, hefur verið bætt við, sem býður upp á sveigjanlegra og skipulagðara úttakssnið. Trace2 gerir þér kleift að safna fjarmælingum um framkvæmdar aðgerðir og frammistöðugögn fyrir ítarlegri greiningu og villuleit (meðhöndlunaraðila er úthlutað af notanda, engin gögn eru send utan);
  • „Git bisect“ skýrslan hefur verið gerð læsilegri, þar sem erfiðar skuldbindingar eru nú skýrar auðkenndar og yfirlitstölfræði um breytingar fyrir hverja skrá er birt (á stigi fjölda lína sem breytt er);
  • Heuristics til að ákvarða nafnaskrárendurnöfn hafa verið endurgerðar til að koma í veg fyrir ranga uppsetningu á endurnefnamerki. Þegar þú ert í vafa eru slíkar möppur nú merktar sem misvísandi;
  • Viðvörun birtist þegar þú reynir að setja upp merki á annað merki, sem er venjulega gert fyrir mistök og getur leitt til þess að merkið er stillt á rangt commit (til dæmis smíði eins og „git tag -f -m „updated message“ my-tag1 my-tag2″ mun leiða til þess að merki verður búið til á gamla merkinu, en verktaki bjóst við að nýja merkið yrði sett upp á commitið sem gamla merkið benti á);
  • Myndun er virkjuð fyrir bitamyndageymslur (uppbygging „aðgengisbitamynda“ sem byggir á diskum), sem geyma gögn um sett af hlutum sem eru tiltæk fyrir hverja skuldbindingu og gera þér kleift að ákvarða fljótt tilvist grunnhluts. Þessi uppbygging dregur verulega úr framkvæmdartíma gagnaöflunaraðgerða (git fetch).

Heimild: opennet.ru

Bæta við athugasemd