Pagpagawas sa giapod-apod nga source control system nga Git 2.22

Gipasa ni pagpagawas sa giapod-apod nga source control system Git 2.22.0. Ang Git usa sa labing inila, kasaligan ug taas nga performance nga mga sistema sa pagkontrol sa bersyon, nga naghatag og flexible nga non-linear nga mga himan sa pagpalambo base sa pagsanga ug paghiusa. Aron masiguro ang integridad sa kasaysayan ug pagsukol sa retroactive nga mga pagbag-o, gigamit ang implicit nga pag-hash sa tibuok miaging kasaysayan sa matag commit, ug posible usab nga ma-certify ang indibidwal nga mga tag ug commit gamit ang digital signatures sa mga developers.

Kung itandi sa miaging pagpagawas, ang bag-ong bersyon naglakip sa 745 nga mga pagbag-o, nga giandam uban ang pag-apil sa 74 nga mga developer, diin 18 ang miapil sa pag-uswag sa unang higayon. nag-unang mga inobasyon:

  • Anaa sukad sa pagpagawas sa 1.18, ang bag-ong commit rebase mode nga "git rebase --rebase-merges" nagpuli sa daan nga "--preserve-merges" nga kapilian, nga karon wala na gigamit. Ang "git rebase" nga operasyon gigamit sa pag-ilis sa usa ka serye sa mga commit sa usa ka bag-o nga base commit, pananglitan, sa pagbalhin sa usa ka bulag nga sanga nga nagpalambo sa pipila ka bag-ong bahin sa kasamtangan nga kahimtang sa master nga sanga, nga naglakip sa mga pag-ayo nga gidugang human sa sanga. :

    o - o - o (akong bahin)

    /

    o - o - o - o - o (agalon)

    o - o - o (akong bahin)

    /

    o - o - o - o - o (agalon)

    Aron mapreserbar ang istruktura sa sanga sa usa ka migrate nga sanga, ang opsyon nga "--preserve-merges" mahimong magamit kaniadto, nga, kung modagan sa interactive mode (git rebase -i --preserve-merges), gitugotan ang pag-edit sa commit history, apan wala makagarantiya sa hingpit nga pagpreserbar sa istruktura sa repository. Ang bag-ong "--rebase-merges" nga paagi nagtugot kanimo sa pagpreserbar sa istruktura sa mga pagbag-o sa sanga nga gibalhin, samtang naghatag usa ka tibuuk nga interactive nga operasyon, lakip ang pagtangtang, pag-grupo pag-usab ug pag-ilis sa ngalan nga nahimo.

    Pananglitan, "--rebase-merges" kini nagtugot re-upload commit gikan sa usa ka bulag nga branch ngadto sa usa ka bag-o nga master branch, samtang nagmintinar sa branch structure sa migrated nga branch, ug naghimo ug pipila ka mga kausaban sa commit notes on the fly.

  • Gidugang nga suporta alang sa pagmugna og bag-ong sanga base sa resulta sa pagtino sa merge base sa duha ka laing mga sanga (merge base, pagbugkos sa usa ka komon nga katigulangan) gamit ang mga konstruksyon nga "git branch new A...B" ug "git checkout -b new A...B", diin ang "A ...B" naglakip sa pagdeterminar sa usa ka merge base tali sa duha ka espesipikong commit, susama sa kung giunsa "git checkout A...B" ang pagbalhin sa HEAD ngadto sa base commit ug "diff A. ..B" nagpakita sa mga kausaban tali sa commit "B" ug sama sa commit "A" "Ancestor.

    Pananglitan, kung nagtrabaho sa usa ka lahi nga my-feature nga sanga, kini nga bahin mahimong magamit kung gusto nimo magsugod gikan sa usa ka lahi nga sanga, pananglitan, gikan sa parehas nga lugar sa master nga sanga diin gisusi ang my-feature nga sanga. Kaniadto, gikinahanglan nga mano-mano nga susihon ang log sa pagbag-o, nga dili kombenyente kung adunay ka daghang kasaysayan sa mga pagbag-o, dayon pagdagan ang "git merge-base master my-feature" aron makalkulo ang hash sa merge base tali sa master ug my-feature nga mga sanga. ug paghimo ug bag-ong sanga nga may kalabotan sa komon nga katigulangan " git branch my-other-feature hash." Sa Git 2.22, mahimo nimong gamiton ang syntax nga "git branch my-other-feature A...B" para maghimo ug branch nga may kalabotan sa merge base sa duha pa ka branch;

  • Gidugang ang "git branch --show-current" nga kapilian aron ipakita ang ngalan sa branch nga nakuha sa panahon sa pag-checkout nga operasyon;
  • Gidugang ang "git checkout β€”no-overlay β€” dir" nga kapilian, nga nagtugot, kung maghimo usa ka operasyon sa pag-checkout, nga madala ang sulud sa direktoryo sa dir sa usa ka porma nga hingpit nga katumbas sa kahimtang sa master branch. Pananglitan, kung adunay usa ka file sa lokal nga kopya sa direktoryo sa dir nga wala sa master branch, nan pinaagi sa default kung ipatuman ang "git checkout master - dir" kini ibilin, ug kung ang "--no-overlay ” Ang kapilian gipiho, kini mapapas;
  • Ang "git diff" nga mando naggamit sa usa ka unibersal nga API alang sa mga kapilian sa pag-parse, nga nagpaposible sa paghiusa sa pagdumala sa kapilian sa ubang mga git utilities. Pananglitan, sa "git diff", ang tanan nga mga kapilian karon adunay ilang mga kontra ("--function-context" ug "--no-function-context");
  • Gidugang ang abilidad sa pagsala sa mga gipalapdan nga mga tag nga gilakip sa mga commit sa "git log" nga output ("trailer" - dugang nga mga bandila sa impormasyon, sama sa Signed-off-by ug Co-authored-by). Posible ang pagsala sa mga label pinaagi sa yawe ug kantidad, pananglitan:
    "git log --pretty="%(trailer:key=Gisusi-ni,valueonly)";

  • Usa ka bag-ong makina sa pagsubay, ang Trace2, gidugang, nga nagtanyag usa ka labi ka dali ug istruktura nga format sa output. Gitugotan ka sa Trace2 sa pagkolekta sa telemetry bahin sa gipatuman nga mga operasyon ug datos sa pasundayag alang sa mas detalyado nga pag-analisar ug pag-debug (ang handler gi-assign sa user, walay data nga gipadala sa gawas);
  • Ang "git bisect" nga taho gihimo nga mas daling mabasa, diin ang mga problema nga nahimo karon mas klaro nga gipasiugda ug ang summary statistics sa mga pagbag-o alang sa matag file gipakita (sa lebel sa gidaghanon sa mga linya nga giusab);
  • Ang heuristics alang sa pagtino sa mga pagbag-o sa ngalan sa direktoryo gibag-o aron mawagtang ang sayup nga pag-install sa mga label sa pag-usab. Kung adunay pagduhaduha, ang ingon nga mga direktoryo karon gimarkahan nga nagkasumpaki;
  • Ang usa ka pasidaan gipakita sa diha nga ikaw mosulay sa pag-instalar sa usa ka tag sa laing tag, nga kasagaran gihimo sa sayop ug mahimong mosangpot sa pagbutang sa tag sa sayop nga pasalig (pananglitan, usa ka pagtukod sama sa "git tag -f -m "updated mensahe" my-tag1 my-tag2β€³ moresulta sa usa ka tag nga gihimo sa daan nga tag, samtang ang developer naglaum nga ang bag-ong tag i-install sa commit nga gitudlo sa daan nga tag);
  • Nahimo ang generation para sa mga bitmap repository (disk-based nga "reachability bitmaps" structure), nga nagtipig og datos mahitungod sa mga set sa mga butang nga anaa alang sa matag commit ug nagtugot kanimo nga dali nga mahibal-an ang presensya sa base nga butang. Kini nga istruktura labi nga nagpamenos sa oras sa pagpatuman sa mga operasyon sa pagkuha sa datos (git fetch).

Source: opennet.ru

Idugang sa usa ka comment