Hajutatud allika juhtimissüsteemi Git 2.22 väljalase

Tutvustatakse hajutatud allika juhtimissüsteemi vabastamine git 2.22.0. Git on üks populaarsemaid, usaldusväärsemaid ja suure jõudlusega versioonikontrollisüsteeme, mis pakub paindlikke mittelineaarseid arendustööriistu, mis põhinevad hargnemisel ja ühendamisel. Ajaloo terviklikkuse ja tagasiulatuvatele muudatustele vastupidavuse tagamiseks kasutatakse igas sissekandes kogu eelneva ajaloo kaudset räsimist, samuti on võimalik üksikuid silte ja kohustusi sertifitseerida arendajate digiallkirjadega.

Võrreldes eelmise versiooniga, sisaldas uus versioon 745 muudatust, mis valmistati ette 74 arendaja osalusel, millest 18 osales arenduses esmakordselt. Kõik uuendused:

  • Alates väljalasest 1.18 saadaval olev uus commit rebase režiim "git rebase --rebase-merges" asendab vana suvandi "--preserve-merges", mis on nüüdseks aegunud. Toimingut "git rebase" kasutatakse kohustuste seeria asendamiseks uue baaskohustusega, näiteks selleks, et teisaldada eraldi haru, mis arendab mõnda uut funktsiooni, põhiharu praegusesse olekusse, mis sisaldab pärast haru lisatud parandusi. :

    o - o - o (minu funktsioon)

    /

    o - o - o - o - o (meister)

    o - o - o (minu funktsioon)

    /

    o - o - o - o - o (meister)

    Haru struktuuri säilitamiseks migreeritud harus võis varem kasutada suvandit “--preserve-merges”, mis interaktiivses režiimis (git rebase -i --preserve-merges) käivitades võimaldas toimetamisajalugu redigeerida, kuid ei taganud hoidla struktuuri täielikku säilimist. Uus režiim "--rebase-merges" võimaldab teil säilitada migreeritava haru muudatuste struktuuri, pakkudes samal ajal kõiki interaktiivseid toiminguid, sealhulgas kohustuste kustutamist, ümberrühmitamist ja ümbernimetamist.

    Näiteks "--rebase-merges" võimaldab laadige kohustused uuesti üles eraldi harust uuemasse põhiharusse, säilitades samal ajal migreeritud haru haru struktuuri, ja tehke käigupealt kinnitusmärkmetes mõned muudatused.

  • Lisatud on uue haru loomise tugi, mis põhineb kahe teise haru liitmisbaasi määramise tulemusel (ühendamise alus, sidumine ühise esivanemaga), kasutades konstruktsioone “git haru uus A...B” ja “git checkout -b new A...B”, milles „A ...B” hõlmab liitmisbaasi määratlemist kahe kindlaksmääratud sissekande vahel, sarnaselt sellele, kuidas „git checkout A...B” nihutab HEAD põhikohustuse ja „diff A. ..B" näitab muudatusi commit "B" ja sama mis commit "A" "Esivanem".

    Näiteks eraldi minu funktsiooni haruga töötades saab seda funktsiooni kasutada siis, kui soovite alustada teisest harust, näiteks samast kohast põhiharus, kust minu funktsiooni haru välja võeti. Varem oli selleks vaja käsitsi muudatuste logi uurida, mis oli ebamugav, kui teil oli palju muudatusi, ja seejärel käivitada "git merge-base master my-feature", et arvutada liitbaasi räsi põhi- ja minu-funktsiooni harude vahel. ja uue haru loomine, mis on seotud ühise esivanemaga "git haru minu-muu-funktsiooni räsi". Git 2.22-s saate kasutada süntaksit "giti haru minu-muu funktsioon A...B", et luua haru kahe teise haru liitmisbaasi suhtes;

  • Lisatud "git branch --show-current" võimalus kuvada kassatoimingu käigus saadud haru nimi;
  • Lisatud on suvand “git checkout —no-overlay — dir”, mis võimaldab kassatoimingu sooritamisel viia kataloogi dir sisu vormile, mis vastab täielikult põhiharu olekule. Näiteks kui kataloogi dir kohalikus koopias on fail, mis ei asu põhiharus, siis vaikimisi jäetakse see käsu "git checkout master - dir" käivitamisel alles ja kui "--no-overlay ” valik on määratud, see kustutatakse;
  • Käsk "git diff" kasutab suvandite sõelumiseks universaalset API-d, mis võimaldab ühendada suvandite käsitlemise teiste git-utiliitidega. Näiteks "git diff" puhul on kõigil valikutel nüüd oma antagonistid ("--function-context" ja "--no-function-context");
  • Lisatud on võimalus filtreerida "git logi" väljundis kohustustele lisatud laiendatud silte ("trailer" - lisateabe lipud, nt Signed-off-by ja Co-authored-by). Silte on võimalik filtreerida nii võtme kui ka väärtuse järgi, näiteks:
    "git log --pretty="%(trailers:key=Reviewed-by,valueonly)";

  • Lisatud on uus jälgimismootor Trace2, mis pakub paindlikumat ja struktureeritumat väljundvormingut. Trace2 võimaldab koguda telemeetriat teostatud toimingute ja jõudlusandmete kohta täpsemaks analüüsiks ja silumiseks (käitleja määrab kasutaja, andmeid väljastpoolt ei saadeta);
  • Loetavamaks on muudetud aruanne “git bisect”, milles probleemsed sissekanded on nüüd selgemini esile tõstetud ja iga faili kohta kuvatakse kokkuvõtlik statistika muudatuste kohta (muudetud ridade arvu tasemel);
  • Kataloogide ümbernimetamise määramise heuristika on ümbernimetatud, et välistada ümbernimetamissiltide vale paigaldamine. Kahtluse korral märgitakse sellised kataloogid nüüd vastuolulisteks;
  • Hoiatus kuvatakse, kui proovite installida märgendit mõnele teisele sildile, mida tehakse tavaliselt kogemata ja mis võib viia sildi valele sisseviimisele (näiteks konstruktsioon nagu "git tag -f -m "uuendatud sõnum") my-tag1 my-tag2″ toob kaasa sildi loomise vanale sildile, samas kui arendaja eeldas, et uus silt paigaldatakse kinnitusele, millele vana silt osutas);
  • Genereerimine on lubatud bitmap-hoidlate jaoks (kettapõhine "kättesaadavuse bitmaps" struktuur), mis salvestab andmeid iga commit jaoks saadaolevate objektide komplektide kohta ja võimaldab teil kiiresti määrata põhiobjekti olemasolu. See struktuur vähendab oluliselt andmete otsimise toimingute (git fetch) täitmise aega.

Allikas: opennet.ru

Lisa kommentaar