PÄc divu mÄneÅ”u izstrÄdes ir izlaista izplatÄ«tÄ avota kontroles sistÄma Git 2.39. Git ir viena no populÄrÄkajÄm, uzticamÄkajÄm un augstas veiktspÄjas versiju kontroles sistÄmÄm, kas nodroÅ”ina elastÄ«gus nelineÄrus izstrÄdes rÄ«kus, kuru pamatÄ ir sazaroÅ”ana un apvienoÅ”ana. Lai nodroÅ”inÄtu vÄstures integritÄti un noturÄ«bu pret retroaktÄ«vÄm izmaiÅÄm, katrÄ saistÄ«bÄ tiek izmantota visas iepriekÅ”ÄjÄs vÄstures netieÅ”a jaukÅ”ana, kÄ arÄ« ir iespÄjams sertificÄt atseviŔķus tagus un saistÄ«bas ar izstrÄdÄtÄju digitÄlajiem parakstiem.
SalÄ«dzinot ar iepriekÅ”Äjo versiju, jaunajÄ versijÄ tika iekļautas 483 izmaiÅas, kas sagatavotas, piedaloties 86 izstrÄdÄtÄjiem, no kurÄm 31 izstrÄdÄ piedalÄ«jÄs pirmo reizi. Galvenie jauninÄjumi:
- Komanda āgit shortlogā, kas paredzÄta, lai parÄdÄ«tu kopsavilkumus ar statistiku no izmaiÅu vÄstures, ir pievienojusi opciju ā-groupā patvaļīgai saistÄ«bu grupÄÅ”anai pÄc laukiem, kas neaprobežojas tikai ar autoru vai apÅemÅ”anos. PiemÄram, lai parÄdÄ«tu izstrÄdÄtÄju sarakstu ar informÄciju par izmaiÅu skaitu, Åemot vÄrÄ laukÄ "LÄ«dzautors" minÄtos palÄ«gus, varat izmantot komandu: git shortlog -ns --group=author - -grupa=piekabe:lÄ«dzautors
Shortlog izvadi var apkopot, izmantojot formatÄÅ”anas specifikÄcijas, un opcija ā--groupā var ievÄrojami vienkÄrÅ”ot sarežģītu atskaiÅ”u izveidi un novÄrst vajadzÄ«bu pÄc papildu kÄrtoÅ”anas komandÄm. PiemÄram, lai izveidotu pÄrskatu ar informÄciju par to, cik katra mÄneÅ”a laikÄ tika pieÅemtas saistÄ«bas konkrÄtam laidienam, varat norÄdÄ«t: 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 IepriekÅ” lÄ«dzÄ«gas darbÄ«bas veikÅ”anai bija jÄizmanto kÄrtoÅ”anas un unikÄlÄs utilÄ«tas: git log v2.38.0. .. ādate='formÄts:%Y -%m' āformat='%cd' | Ŕķirot | unikÄls -c
- Ir paplaÅ”inÄtas mehÄnisma āCruft packsā iespÄjas, kas paredzÄtas nesasniedzamu objektu iesaiÅoÅ”anai, uz kuriem nav atsauces repozitorijÄ (nav norÄdÄ«ti zari vai tagi). Nesasniedzamos objektus atkritumu savÄcÄjs izdzÄÅ”, bet tie paliek krÄtuvÄ noteiktu laiku, pirms tie tiek izdzÄsti, lai izvairÄ«tos no sacensÄ«bu apstÄkļiem. āCruft packsā mehÄnisms ļauj glabÄt visus nesasniedzamos objektus vienÄ pakotnes failÄ un attÄlot datus par katra objekta modifikÄcijas laiku atseviÅ”Ä·Ä tabulÄ, kas glabÄjas atseviÅ”Ä·Ä failÄ ar paplaÅ”inÄjumu ā.mtimesā, lai tie to darÄ«tu. nepÄrklÄjas ar kopÄjo modifikÄcijas laiku.
Laiks, cik ilgi nesasniedzamie objekti paliek repozitorijÄ, pirms tie tiek faktiski izdzÄsti, tiek noteikts ar opciju āāprune=ā. " TomÄr, lai gan kavÄÅ”anÄs pirms dzÄÅ”anas ir diezgan efektÄ«vs un praktisks veids, kÄ novÄrst repozitorija korupciju sacensÄ«bu apstÄkļu dÄļ, tas nav 100% uzticams. Lai atvieglotu bojÄtas repozitorija atjaunoÅ”anu, jaunajÄ laidienÄ ir nodroÅ”inÄta iespÄja saglabÄt trÅ«kstoÅ”os objektus, komandai āgit repackā pievienojot opciju ā--expire-toā, kas ļauj norÄdÄ«t failu, lai izveidotu ÄrÄju. visu izdzÄsto objektu kopijas. PiemÄram, lai saglabÄtu failÄ backup.git nesasniedzamos objektus, kas nav mainÄ«juÅ”ies pÄdÄjo 5 minÅ«Å”u laikÄ, varat izmantot komandu: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -to=../backup.git
- IevÄrojami palielinÄts (lÄ«dz 70%) operÄcijas "git grep -cached" Ätrums, veicot meklÄÅ”anu apgabalos, kuros tiek izmantota daļÄja klonÄÅ”ana (sparse-checkout) un kuriem ir daļÄji indeksi (sparse index). IepriekÅ”, norÄdot opciju ākeÅ”atmiÅÄā, meklÄÅ”ana vispirms tika veikta parastajÄ indeksÄ un pÄc tam daļÄjÄ rÄdÄ«tÄjÄ, kas izraisÄ«ja ievÄrojamas aizkavÄÅ”anÄs, meklÄjot lielos krÄtuvÄs.
- Ir paÄtrinÄta servera veiktÄ jauno objektu saskaÅotÄ«bas pÄrbaude, pirms tie tiek ievietoti repozitorijÄ operÄcijas "git push" laikÄ. PÄrejot uz tikai deklarÄto saiÅ”u uzskaiti pÄrbaudÄ, testa repozitorijÄ ar 7 miljoniem saiÅ”u, no kurÄm tikai 3% aptver push operÄcija, veiktÄs optimizÄcijas ļÄva samazinÄt pÄrbaudes laiku 4.5 reizes.
- Lai aizsargÄtu pret iespÄjamu veselu skaitļu pÄrpildÄ«Å”anu kodÄ, komanda "git apply" ierobežo apstrÄdÄjamo ielÄpu maksimÄlo izmÄru. Ja ielÄpa izmÄrs pÄrsniedz 1 GB, tagad tiks parÄdÄ«ta kļūda.
- Lai aizsargÄtu pret iespÄjamÄm ievainojamÄ«bÄm, ir veiktas izmaiÅas, lai no galvenÄm notÄ«rÄ«tu nevajadzÄ«gu informÄciju, izmantojot moduli h2h3 ar opciju GIT_TRACE_CURL=1 vai GIT_CURL_VERBOSE=1 kopÄ ar HTTP/2.
- Veicot pÄrbaudi filiÄlei, kas ir simboliska saite uz citu filiÄli, komanda "git symbolic-ref HEAD" tagad parÄda mÄrÄ·a filiÄles nosaukumu, nevis simboliskÄs saites nosaukumu.
- Pievienots argumenta @{-1} atbalsts opcijai ā--edit-descriptionā (āgit branch āedit-description @{-1}ā), lai rediÄ£Ätu iepriekÅ”ÄjÄs filiÄles aprakstu.
- Pievienota komanda "git merge-tree --stdin", lai nodotu opciju sarakstu, izmantojot standarta ievadi.
- TÄ«kla failu sistÄmÄs fsmonitor apdarinÄtÄjs, kas uzrauga izmaiÅas failu sistÄmÄ, pÄc noklusÄjuma ir atspÄjots.
Avots: opennet.ru