Kuburitswa kweyakagoverwa sosi yekudzora system Git 2.22

Introduced kuburitswa kweiyo distributed source control system git 2.22.0. Git ndeimwe yeanonyanya kufarirwa, akavimbika uye akakwira-inoshanda shanduro yekudzora masisitimu, achipa anochinjika asiri-mutsara ekuvandudza maturusi akavakirwa pabazi nekubatanidza. Kuti ive nechokwadi chekutendeseka kwenhoroondo uye kuramba kune shanduko yekuchinja, hashing yakazara yenhoroondo yese yapfuura mune imwe neimwe kuzvipira inoshandiswa, uye zvakare zvinokwanisika kuvimbisa ega ma tag uye kuita nemasiginecha edhijitari evagadziri.

Kuenzaniswa nekuburitswa kwekare, iyo vhezheni itsva yaisanganisira 745 shanduko, yakagadzirirwa nekubatanidzwa kwevagadziri makumi masere nemana, avo 74 vakatora chikamu mukusimudzira kekutanga. chikuru zvitsva:

  • Inowanikwa kubva payakaburitswa 1.18, iyo nyowani dhiza rebase modhi "git rebase --rebase-merges" inotsiva yekare "--preserve-merge" sarudzo, iyo yave kurerutswa. Iko "git rebase" kushanda kunoshandiswa kutsiva nhevedzano yezvibvumirano neiyo itsva base commit, semuenzaniso, kufambisa bazi rakasiyana riri kugadzira chimwe chinhu chitsva kune yazvino mamiriro ebazi guru, iro rinosanganisira zvigadziriso zvakawedzerwa mushure mebazi. :

    o - o - o (yangu-chimiro)

    /

    o - o - o - o - o (tenzi)

    o - o - o (yangu-chimiro)

    /

    o - o - o - o - o (tenzi)

    Kuchengetedza chimiro chebazi mubazi rakatama, iyo "-preserve-merges" sarudzo yaigona kushandiswa kare, iyo, kana ichimhanya mune inopindirana modhi (git rebase -i --preserve-merges), yakabvumira kugadzirisa nhoroondo yekuzvipira, asi. haina kuvimbisa kuchengetedzwa kwakakwana kweiyo repository chimiro. Iyo nyowani "-rebase-merges" modhi inobvumidza iwe kuchengetedza chimiro chekuchinja mubazi riri kutamiswa, uku uchipa huwandu hwakazara hwekuita mashandiro, kusanganisira kudzima, kuunganidza uye kutumidza zita rekuita.

    Semuenzaniso, "--rebase-meges" Kunoitawo kurodhazve zvibodzwa kubva kubazi rakasiyana kuenda kune nyowani master bazi, uchichengetedza chimiro chebazi mubazi rakatama, uye kuita shanduko kune kuzvipira manotsi panhunzi.

  • Yakawedzerwa rutsigiro rwekugadzira bazi idzva zvichibva pamhedzisiro yekuona kusanganisa kwemamwe matavi maviri (kubatanidza base, kusungirira kune mumwe chete tateguru) uchishandisa zvivakwa "git branch new A...B" uye "git checkout -b new. A...B”, umo β€œA ...B” inosanganisira kutsanangura chigadziko chekubatanidza pakati pezviitwa zviviri zvakatsanangurwa, zvakafanana nekuti "git checkout A...B" inoshandura MUSORO kuenda padanho rekuita uye "diff A. ..B" inoratidza shanduko pakati pekuita "B" uye zvakafanana nekuita "A" "Ancestor.

    Semuenzaniso, paunenge uchishanda pane imwe nzvimbo yebazi rangu, chimiro ichi chinogona kushandiswa kana iwe uchida kutanga kubva kune rimwe bazi rakasiyana, somuenzaniso, kubva panzvimbo imwechete mubazi guru kubva kune iyo yangu-chimiro chebazi chakatariswa. Pakutanga, izvi zvaida kuongorora nemaoko irogi rekuchinja, izvo zvaive zvisingaite kana iwe uine nhoroondo yakakura yekuchinja, wobva wamhanya "git merge-base master my-feature" kuverenga hashi yechigadziko chekubatanidza pakati pematavi tenzi neangu-chimiro. uye kugadzira bazi idzva rine hukama neatateguru " git branch my-other-feature hash." MuGit 2.22, unogona kushandisa syntax "git branch my-other-feature A...B" kugadzira bazi rinoenderana nechepasi pekubatanidzwa kwemamwe matavi maviri;

  • Yakawedzera "git branch --show-current" sarudzo yekuratidza zita rebazi rakawanikwa panguva yekutarisa;
  • Yakawedzera "git checkout -no-overlay - dir" sarudzo, iyo inobvumira, kana uchiita basa rekutsvaga, kuunza zviri mukati medhairekitori redhireji kune fomu rinonyatsoenderana nemamiriro ebazi ratenzi. Semuenzaniso, kana paine faira mukopi yenzvimbo yedhairekitori risiri mubazi guru, saka nekusarudzika paunenge uchiita "git checkout master - dir" inosara, uye kana "--no-overlay". ” sarudzo yataurwa, ichabviswa;
  • Iwo "git diff" murairo unoshandisa API yepasirese yekusarudza sarudzo, izvo zvinoita kuti zvikwanise kubatanidza sarudzo yekubata nezvimwe git zvinoshandiswa. Semuyenzaniso, mu "git diff", sarudzo dzese dzava nevanodzipikisa ("--function-context" uye "--no-function-context");
  • Yakawedzera kugona kusefa ma tag akawedzerwa akasungirirwa kune anoita mu "git log" inobuda ("trailer" - yekuwedzera ruzivo mireza, senge Signed-off-by uye Co-authored-by). Zvinogoneka kusefa mavara neese kiyi uye kukosha, semuenzaniso:
    "git log --pretty="%(trailers:key=Ongororo-ne,valueonly)";

  • Injini nyowani yekutevera, Trace2, yawedzerwa, ichipa inoshanduka uye yakarongeka yekubuda fomati. Trace2 inokutendera kuti utore telemetry nezve mashandiro akaitwa uye data rekuita kuti uwane rumwe ruzivo rwekuongorora uye kugadzirisa (mubati anopihwa nemushandisi, hapana data rinotumirwa kunze);
  • Chirevo che "git bisect" chaitwa kuti chiverengeke, umo zvinonetsa zvipimo zvave kujekeswa uye zvipfupi zviverengero zvekuchinja kwefaira rega rega zvinoratidzwa (pamwero wehuwandu hwemitsara yakashandurwa);
  • Iyo heuristics yekuona dhairekitori remisheni yakagadziridzwa zvakare kubvisa kuiswa kwenhema kwemazita ekutumidza mazita. Kana paine kusava nechokwadi, dhairekitori dzakadaro dzava kunzi dzinopokana;
  • Yambiro inoratidzwa paunoyedza kuisa tag pane imwe tag, iyo inowanzoitwa nekukanganisa uye inogona kutungamira kumisikidza iyo tag pane isiriyo kuzvipira (semuenzaniso, chivakwa senge "git tag -f -m "yakagadziridzwa meseji" my-tag1 my- tag2 β€³ inozoita kuti tag igadzirwe pane yekare tag, nepo mugadziri aitarisira kuti tag nyowani iiswe pane chibvumirano chakanongedzwa neyekare tag);
  • Generation inogoneswa kune bitmap repositories (disk-based "reachability bitmaps" chimiro), iyo inochengeta data nezve seti yezvinhu zviripo kune yega yega kuita uye inobvumidza iwe kukurumidza kuona kuvepo kwechinhu chakadzika. Ichi chimiro chinoderedza zvakanyanya nguva yekuuraya yekudzosa data (git fetch).

Source: opennet.ru

Voeg