Git 2.39 source control release

Pagkahuman sa duha ka bulan nga pag-uswag, ang giapod-apod nga sistema sa pagkontrol sa gigikanan nga Git 2.39 gipagawas na. 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 483 nga mga pagbag-o, nga giandam uban ang pag-apil sa 86 nga mga developer, diin 31 ang miapil sa pag-uswag sa unang higayon. Panguna nga mga inobasyon:

  • Ang "git shortlog" nga sugo, nga gidesinyo aron ipakita ang mga summary nga adunay mga estadistika gikan sa kasaysayan sa mga pagbag-o, nagdugang usa ka "-group" nga kapilian alang sa arbitraryong paggrupo sa mga commit pinaagi sa mga field nga dili limitado sa awtor o committer. Pananglitan, aron ipakita ang usa ka lista sa mga developer nga adunay kasayuran bahin sa gidaghanon sa mga pagbag-o, nga gikonsiderar ang mga katabang nga gihisgutan sa field nga "Co-authored-by", mahimo nimong gamiton ang command: git shortlog -ns --group=author - -group=trailer:co-authored-ni

    Ang shortlog nga output mahimong ma-aggregate gamit ang formatting specifiers, ug ang "--group" nga opsyon makapasimple sa paghimo sa komplikadong mga report ug makawagtang sa panginahanglan alang sa dugang nga sorting commands. Pananglitan, sa paghimo og report nga adunay impormasyon bahin sa pila ka commit alang sa gihatag nga pagpagawas ang gidawat sa matag bulan, mahimo nimong itakda ang: git shortlog v2.38.0.. β€”date='format:%Y-%m' β€”group=' %cd' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Kaniadto, aron mahimo ang parehas nga operasyon kinahanglan nga gamiton ang klase ug uniq utilities: git log v2.38.0 .. β€”date='format:%Y -%m' β€”format='%cd' | matang | uniq -c

  • Ang mga kapabilidad sa mekanismo sa "cruft packs", nga gidisenyo alang sa pagputos sa dili maabot nga mga butang nga wala gi-refer sa repository (wala gi-refer sa mga sanga o mga tag), gipalapdan. Ang dili maabot nga mga butang gitangtang sa tigkolekta sa basura, apan magpabilin sa repository sa usa ka piho nga oras sa wala pa kini mapapas aron malikayan ang mga kondisyon sa lumba. Ang mekanismo sa "cruft packs" nagtugot kanimo sa pagtipig sa tanan nga dili maabot nga mga butang sa usa ka pack file, ug ipakita ang datos sa oras sa pagbag-o sa matag butang sa usa ka bulag nga lamesa, nga gitipigan sa usa ka bulag nga file nga adunay extension nga ".mtimes", aron mahimo nila. dili magsapaw sa kinatibuk-ang panahon sa pagbag-o.

    Ang gitas-on sa panahon nga ang dili maabot nga mga butang magpabilin sa repository sa dili pa kini aktwal nga mapapas gitino sa opsyon nga "β€”prune=" " Bisan pa, samtang ang paglangan sa wala pa ang pagtangtang usa ka epektibo ug praktikal nga paagi aron mapugngan ang korapsyon sa repository tungod sa mga kahimtang sa lumba, dili kini 100% kasaligan. Aron masayon ​​​​ang pag-uli sa usa ka naguba nga repository, ang bag-ong pagpagawas naghatag og abilidad sa pagluwas sa nawala nga mga butang pinaagi sa pagdugang sa "--expire-to" nga kapilian sa "git repack" nga sugo, nga nagtugot kanimo sa pagtino sa usa ka file aron makahimo og external kopya sa tanang natangtang nga butang. Pananglitan, aron maluwas ang dili maabot nga mga butang nga wala mausab sa miaging 5 ka minuto sa backup.git file, mahimo nimong gamiton ang command: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git

  • Mahinungdanon nga pagtaas (hangtod sa 70%) ang katulin sa "git grep -cached" nga operasyon kung nangita sa mga lugar nga gigamit ang partial cloning (sparse-checkout) ug kung diin adunay mga partial index (sparse index). Kaniadto, kung gipiho ang kapilian nga "-cached", ang pagpangita gihimo una sa regular nga index, ug dayon sa mga partial, nga misangpot sa mamatikdan nga mga paglangan sa pagpangita sa dagkong mga repositoryo.
  • Ang pag-verify sa server sa pagkadugtong sa bag-ong mga butang sa wala pa kini ibutang sa repository sa panahon sa "git push" nga operasyon gipaspasan. Pinaagi sa pagbalhin ngadto sa accounting alang lamang sa gideklarar nga mga link sa dihang nagsusi, sa usa ka pagsulay nga repository nga adunay 7 ka milyon nga mga link, diin 3% lamang ang nasakup sa operasyon sa pagduso, ang mga pag-optimize nga gihimo nagtugot sa pagkunhod sa oras sa pagsusi sa 4.5 ka beses.
  • Aron mapanalipdan batok sa potensyal nga pag-awas sa integer sa code, ang "git apply" nga command naglimite sa maximum nga gidak-on sa mga patch nga mahimong maproseso. Kung ang gidak-on sa patch molapas sa 1 GB, usa ka sayup ang ipakita karon.
  • Aron mapanalipdan batok sa mga potensyal nga kahuyangan, gihimo ang mga pagbag-o aron malimpyohan ang wala kinahanglana nga kasayuran gikan sa mga header nga gitakda kung gigamit ang h2h3 module nga adunay GIT_TRACE_CURL=1 o GIT_CURL_VERBOSE=1 nga kapilian kauban ang HTTP/2.
  • Kung nagpahigayon og check out sa usa ka branch nga simbolo nga link sa laing branch, ang "git symbolic-ref HEAD" nga command karon nagpakita sa ngalan sa target branch kaysa sa ngalan sa symlink.
  • Gidugang nga suporta para sa @{-1} nga argumento sa opsyon nga β€œ--edit-description” (β€œgit branch β€”edit-description @{-1}”) para sa pag-edit sa deskripsyon sa miaging branch.
  • Gidugang ang "git merge-tree --stdin" nga mando aron ipasa ang usa ka lista sa mga kapilian pinaagi sa standard input.
  • Sa mga sistema sa file sa network, ang tigdumala sa fsmonitor, nga nag-monitor sa mga pagbag-o sa sistema sa file, gi-disable pinaagi sa default.

Source: opennet.ru

Idugang sa usa ka comment