PĂ€rast kahe kuu arendustööd on vĂ€lja antud jaotatud allika haldamise sĂŒsteemi Git versioon 2.39. Git on ĂŒks populaarsemaid, usaldusvÀÀrsemaid ja kĂ”rgelt tootlikke versioonihalduse sĂŒsteeme, pakkudes paindlikke vahendeid mitte-lineaarseks arenduseks, mis pĂ”hinevad harude ja ĂŒhenduste kujundamisel. Ajaloo terviklikkuse ja tagasivaatlike muudatuste usaldusvÀÀrsuse tagamiseks kasutatakse kogu eelmise ajaloo varjatud hashimist igas commit'is, samuti on vĂ”imalik kontrollida digitaalseid allkirju arendajate eraldi siltide ja commit'ide kohta.
VÔrreldes eelmise versiooniga on uude versiooni lisatud 483 muudatust, mille on ette valmistanud 86 arendajat, kellest 31 osaleb arendustegevuses esmakordselt. Peamised uuendused:
- KĂ€sule âgit shortlogâ, mis on mĂ”eldud muudatusajaloo statistika kokkuvĂ”tete kuvamiseks, on lisatud valik ââgroupâ, et vĂ”imaldada commit'ide suvalist grupeerimist vĂ€ljade jĂ€rgi, mitte ainult autori vĂ”i commit'i teinud isiku pĂ”hjal. NĂ€iteks arendajate nimekirja kuvamiseks koos muudatusete arvu teabega, mis arvestab abistajaid, keda mainitakse vĂ€ljal âCo-authored-byâ, saab kasutada kĂ€sku: git shortlog -ns âgroup=author âgroup=trailer:co-authored-by
Shortlog'i vĂ€ljundit saab vormindamisnĂ€itajate abil liita, ning valik "--group" lihtsustab oluliselt keerukate aruannete koostamist ja pÀÀstab lisasortimise kĂ€skude kasutamisest. NĂ€iteks, et koostada aruanne, kus on teave selle kohta, kui palju pĂŒhendusi antud vĂ€ljaande puhul igas kuus on vastu vĂ”etud, saab kirjutada: git shortlog v2.38.0.. --date='format:%Y-%m' --group='' -s 2 2022-08 47 2022-09 405 2022-10 194 2022-11 5 2022-12 Varem oleks sarnase operatsiooni teostamiseks olnud vaja kasutada utiliite sort ja uniq: git log v2.38.0.. --date='format:%Y-%m' --format='' | sort | uniq -c
- JĂ”udlusmehhanism «cruft packs», mis on ette nĂ€htud viitamata objektide pakkimiseks, on laienenud. Need objektid, millel ei ole viiteid (nt oksad vĂ”i sildid) hoidlas, eemaldatakse prĂŒgikogumisse, kuid enne kustutamist jÀÀvad need teatud ajaks hoidla sisse, et vĂ€ltida olukordade konkurentsi. Mehhanism «cruft packs» vĂ”imaldab hoida kĂ”ik viitamata objektid ĂŒhes pack-failis, samal ajal kui iga objekti muutmise ajalugu kajastatakse eraldi tabelis, mis on salvestatud eraldi failis laiendiga «.mtimes», et need ei kattuks ĂŒldise muutmise ajaga.
Viitamata objektide sĂ€ilimisaeg hoidlas enne nende tegelikku eemaldamist mÀÀratakse valikuga «âprune=<date>». Kuigi viivitamine eemaldamisega on tĂ”hus ja praktiline viis vĂ€ltida hoidla kahjustamist olukordade konkurentsist, ei ole see 100% usaldusvÀÀrne. Kuidas lihtsustada kahjustatud hoidla taastamist, on uue vĂ€ljaande puhul lisatud vĂ”imalus puuduolevaid objekte salvestada, selleks on kĂ€sku «git repack» tĂ€iustatud valikuga «âexpire-to», mis vĂ”imaldab mÀÀrata faili eemaldatud objektide vĂ€lise koopia loomiseks. NĂ€iteks, et salvestada failis backup.git viitamata objekte, mis ei ole viie minuti jooksul muutunud, saab kasutada kĂ€sku: git repack âcruft âcruft-expiration=5.minutes.ago -d âexpire-to=..\/backup.git.
- Operatsiooni «git grep âcached» kĂ€itamise kiirus on suurenenud (kuni 70%) osalise kloonimise (sparse-checkout) ja osaliste indeksite (sparse index) alal. Varasemalt toimus «âcached» valiku kasutamisel otsing esmalt tavalises indeksis ja seejĂ€rel osalistes, mis tĂ”i kaasa mĂ€rgatavad viivitused suurtes hoidlates otsingul.
- Kiirus on suurenenud serveris uusimate objektide sidususe kontrollimine enne nende hoidlasse lisamist operatsiooni «git push» kĂ€itamisel. AinuĂŒksi viidatud linkide arvestusele mineku tĂ”ttu vĂ”imaldasid testhoidlas 7 miljoni lingiga, millest vaid 3% hĂ”lmab pushi, rakendatud optimeerimised vĂ€hendada kontrollimise aega 4,5 korda.
- Potentsiaalsete tĂ€isarvude ĂŒlevoolude kaitsmiseks on kĂ€sus âgit applyâ piiratud maksimaalne töötlemiseks ettenĂ€htud patch'i suurus. Kui patch'i suurus ĂŒletab 1 GB, kuvatakse now viga.
- Potentsiaalsete haavatavuste kaitseks on tehtud muudatusi, et puhastada liigset teavet pÀistest, mis antakse vÀlja, kui kasutatakse moodulit h2h3 koos valikuga GIT_TRACE_CURL=1 vÔi GIT_CURL_VERBOSE=1 koos HTTP/2.
- Checkout operatsiooni tĂ€itmisel haru, mis on sĂŒmboolne link teisele harule, kĂ€su âgit symbolic-ref HEADâ vĂ€ljund nĂŒĂŒd sihtharu nime, mitte sĂŒmboolse lingi nime.
- Lisatud tugi argumendile @{-1} valikus ââedit-descriptionâ (âgit branch âedit-description @{-1}â) varasema haru kirjelduse muutmiseks.
- Lisatud kĂ€sk âgit merge-tree âstdinâ, mis vĂ”imaldab edastada parameetrite loendit standardse sisendi kaudu.
- VĂ”rgufailisĂŒsteemidel on vaikimisi keelatud fsmonitor, mis jĂ€lgib failisĂŒsteemi muutusi.
Allikas: opennet.ru
