Pagpagawas sa giapod-apod nga source control system Git 2.31

Ang giapod-apod nga source control system nga Git 2.31 anaa na karon. Ang Git usa sa pinakasikat, 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 pagbatok sa retroactive nga mga pagbag-o, ang implicit nga pag-hash sa tibuok miaging kasaysayan gigamit sa matag commit; posible usab nga pamatud-an ang indibidwal nga mga tag ug commit sa digital nga mga pirma sa mga developers.

Kung itandi sa miaging pagpagawas, ang bag-ong bersyon naglakip sa 679 nga mga pagbag-o, nga giandam uban ang pag-apil sa 85 nga mga developer, diin 23 ang miapil sa pag-uswag sa unang higayon. Panguna nga mga inobasyon:

  • Gidugang ang "git maintenance" nga sugo, nga nagtugot kanimo sa paghimo sa matag-panahon nga trabaho sa mga sistema nga wala nagsuporta sa cron. Pananglitan, gamit ang bag-ong command, mahimo nimong ihan-ay ang proseso sa pagputos sa repositoryo nga modagan matag karon ug unya, aron dili ka maghulat nga ma-lock ang repository kung awtomatiko nga gihimo ang pagputos samtang nagpadagan sa lainlaing mga mando. Ang "git maintenance" nga komand nagtugot kanimo sa paghimo sa mga pag-optimize ug mga operasyon aron mapadayon ang kamalaumon nga istruktura sa repository sa background, nga wala gibabagan ang interactive nga sesyon - kausa sa usa ka oras, ang trabaho gihimo aron aktibo nga mag-download sa mga bag-ong butang gikan sa hilit nga repository ug i-update ang file nga adunay commit graph, ug ang proseso sa pag-pack sa repository magsugod matag gabii.
  • Gidugang nga suporta alang sa pagpadayon sa usa ka reverse index (revindex) sa disk alang sa mga pack file. Hinumdomi nga gitipigan sa Git ang tanan nga datos sa porma sa mga butang, nga nahimutang sa lainlaing mga file. Aron madugangan ang kahusayan sa pagtrabaho kauban ang repository, ang mga butang dugang nga gibutang sa mga file sa pack, diin ang kasayuran gipresentar sa porma sa usa ka sapa sa mga butang nga nagsunod sa usag usa (usa ka parehas nga format ang gigamit sa pagbalhin sa mga butang gamit ang git fetch ug git push. mga sugo). Alang sa matag pack file, usa ka index file (.idx) ang gihimo, nga nagtugot kanimo sa dali nga pagtino sa offset sa pack file diin ang gihatag nga butang gitipigan gamit ang object identifier. Gipaila sa Git 2.31, ang reverse index (.rev) gitumong sa pag-optimize sa proseso sa pagtino sa usa ka object identifier gikan sa impormasyon mahitungod sa pagbutang sa usa ka butang sa usa ka pack file.

    Kaniadto, ang ingon nga pagkakabig gihimo sa langaw samtang nag-parse sa pack file ug gitipigan lamang sa panumduman, nga wala magtugot sa parehas nga mga indeks nga magamit pag-usab ug gipugos ang indeks nga mabuhat matag higayon. Ang operasyon sa pagtukod sa usa ka indeks moabut ngadto sa pagtukod sa usa ka han-ay sa mga butang-posisyon nga mga pares ug paghan-ay niini pinaagi sa posisyon, nga mahimong magdugay alang sa dagkong mga pack files.

    Pananglitan, ang usa ka operasyon sa pagpakita sa mga sulod sa mga butang, nga naggamit sa usa ka direkta nga indeks, mao ang 62 ka pilo nga mas paspas kay sa usa ka operasyon sa pagpakita sa gidak-on sa mga butang, diin ang position-to-object data wala ma-index. Pagkahuman sa paggamit sa reverse index, kini nga mga operasyon nagsugod sa hapit parehas nga oras. Gitugotan ka usab sa mga reverse index nga mapadali ang mga operasyon sa pagpadala sa butang kung ipatuman ang pagkuha ug pagduso nga mga mando pinaagi sa direktang pagbalhin sa andam nga datos gikan sa disk. Sa kasagaran, ang mga reverse index wala gihimo; aron makamugna kini, kinahanglan nimo nga i-enable ang setting nga "git config pack.writeReverseIndex true" ug dayon i-pack ang repository gamit ang "git repack -Ad" nga sugo.

  • Gidugang ang performance optimizations base sa dagway sa commit-graph file format, nga gigamit sa pag-optimize sa access sa impormasyon mahitungod sa commits, bag-ong data mahitungod sa commit generation number, nga magamit sa pagpadali sa dugang nga mga operasyon uban sa commits.
  • Gidugang nga mga kapilian alang sa pag-usab sa ngalan sa nag-unang sanga nga gigamit sa default sa mga bag-ong repository (init.defaultBranch setting). Kung nag-access sa mga eksternal nga repositoryo, gisulayan ni git nga susihon ang sanga nga gitudlo sa HEAD, i.e. kung ang eksternal nga server naggamit sa "main" nga sanga sa default, nan ang "git clone" nga operasyon mosulay sa pagsusi sa "main" sa lokal. Git 2.31 karon nagsuporta niini nga matang sa checkout alang sa walay sulod nga mga repositoryo. Pananglitan, kung mag-clone sa usa ka bag-ong repository sa lokal sa wala pa idugang ang una nga mga patch niini, ang lokal nga kopya maglangkob na karon sa default nga upstream nga ngalan nga gibutang sa eksternal nga server.
  • Gidugang ang usa ka --disk-usage nga kapilian sa "git rev-list" nga sugo aron maghatag usa ka summary sa gidak-on sa mga butang.
  • Sa pagpaabot sa umaabot nga pagbag-o sa merge backend, ang rename detection na-optimized pag-ayo.
  • Ang suporta alang sa kabilin nga PCRE1 nga regular nga expression nga librarya gihunong na.
  • Posible nga kusganong idili ang paggamit sa gipamubu nga mga link, bisan unsa pa ang algorithm sa hashing. Ang pagdili mahimo pinaagi sa pag-assign sa bili nga "dili" sa core.abbrev parameter.
  • Gidugang ang "--path-format=(absolute|relative)" nga opsyon sa "git rev-parse" nga sugo aron klarong ipiho kung ang relatibong o hingpit nga mga agianan kinahanglan nga output.
  • Ang mga script sa pagkompleto sa Bash nagpasayon ​​sa pagdugang sa mga lagda sa pagkompleto para sa imong kaugalingong "git" nga mga subcommand.
  • Gidugang ang usa ka --stdin nga kapilian sa "git bundle" nga mando aron mabasa ang mga reference gikan sa standard input stream.
  • Usa ka bag-ong opsyon nga "--diff-merges=" ang gidugang sa "git log" nga sugo.
  • Gidugang ang "--deduplicatecan" nga kapilian sa "git ls-files" nga mando aron mawagtang ang doble nga output.
  • Gidugang bag-ong mga maskara aron dili iapil ang usa ka lainlaing mga commit - "^!" ug "^-".
  • Gidugang ang "--left-only" ug "--right-only" nga mga opsyon sa "git range-diff" nga sugo aron ipakita ang usa lang ka bahin sa range nga gitandi.
  • Gidugang ang --skip-to=" ug "--rotate-to=" nga mga opsyon sa "git diff" ug "git log" nga mga sugo aron laktawan o ibalhin ngadto sa katapusan sa unang mga agianan.
  • Gidugang ang "--skip-to=" nga opsyon sa "git difftool" nga sugo aron ipadayon ang nabalda nga sesyon gikan sa arbitraryong dalan.
  • Ang Code-of-conduct, nga naghubit sa sukaranang mga prinsipyo alang sa pagsulbad sa mga sitwasyon sa panagbangi tali sa mga developers, gi-update sa bersyon 2.0 (kaniadto nga bersyon 1.4 gigamit).

    Source: opennet.ru

Idugang sa usa ka comment