Rhyddhad rheoli ffynhonnell Git 2.39

Ar ôl dau fis o ddatblygiad, mae'r system rheoli ffynhonnell ddosbarthedig Git 2.39 wedi'i ryddhau. Git yw un o'r systemau rheoli fersiynau mwyaf poblogaidd, dibynadwy a pherfformiad uchel, gan ddarparu offer datblygu aflinol hyblyg yn seiliedig ar ganghennu ac uno. Er mwyn sicrhau cywirdeb yr hanes a gwrthwynebiad i newidiadau ôl-weithredol, defnyddir stwnsh ymhlyg o'r holl hanes blaenorol ym mhob ymrwymiad; mae hefyd yn bosibl ardystio tagiau unigol ac ymrwymo gyda llofnodion digidol y datblygwyr.

O'i gymharu â'r datganiad blaenorol, roedd y fersiwn newydd yn cynnwys 483 o newidiadau, a baratowyd gyda chyfranogiad 86 o ddatblygwyr, a chymerodd 31 ran mewn datblygiad am y tro cyntaf. Prif arloesiadau:

  • Mae'r gorchymyn “git shortlog”, a fwriedir ar gyfer arddangos crynodebau gydag ystadegau o hanes y newidiadau, wedi ychwanegu opsiwn “-group” ar gyfer grwpio ymrwymiadau yn fympwyol yn ôl meysydd nad ydynt yn gyfyngedig i awdur neu ymroddwr. Er enghraifft, i arddangos rhestr o ddatblygwyr gyda gwybodaeth am nifer y newidiadau, gan gymryd i ystyriaeth y cynorthwywyr a grybwyllir yn y maes "Cyd-awdur-gan", gallech ddefnyddio'r gorchymyn: git shortlog -ns --group=author - -group=trelar: cyd-awdur-gan

    Gellir agregu allbwn shortlog gan ddefnyddio manylebau fformatio, a gall yr opsiwn “--group” symleiddio'n sylweddol y broses o greu adroddiadau cymhleth a dileu'r angen am orchmynion didoli ychwanegol. Er enghraifft, i greu adroddiad gyda gwybodaeth am faint o ymrwymiadau ar gyfer datganiad penodol a dderbyniwyd bob mis, gallwch nodi: 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 Yn flaenorol, i gyflawni gweithrediad tebyg byddai wedi bod yn angenrheidiol defnyddio'r cyfleustodau didoli ac uniq: git log v2.38.0. .. -date='fformat:%Y -%m' —format='%cd' | didoli | uniq -c

  • Mae galluoedd y mecanwaith “pecynnau cruft”, a ddyluniwyd ar gyfer pacio gwrthrychau na ellir eu cyrraedd na chyfeirir atynt yn y gadwrfa (na chyfeirir atynt gan ganghennau neu dagiau), wedi'u hehangu. Mae gwrthrychau na ellir eu cyrraedd yn cael eu dileu gan y casglwr sbwriel, ond maent yn aros yn y storfa am amser penodol cyn eu dileu er mwyn osgoi amodau hil. Mae'r mecanwaith “pecynnau cruft” yn caniatáu ichi storio'r holl wrthrychau anghyraeddadwy mewn un ffeil pecyn, ac arddangos data ar amser addasu pob gwrthrych mewn tabl ar wahân, wedi'i storio mewn ffeil ar wahân gyda'r estyniad “.mtimes”, fel eu bod yn gwneud hynny. ddim yn gorgyffwrdd â chyfanswm yr amser addasu.

    Pennir hyd yr amser y mae gwrthrychau anghyraeddadwy yn aros yn y gadwrfa cyn iddynt gael eu dileu mewn gwirionedd gan yr opsiwn “—prune=” " Fodd bynnag, er bod oedi cyn dileu yn ffordd eithaf effeithiol ac ymarferol i atal llygredd ystorfa oherwydd amodau hil, nid yw'n 100% dibynadwy. Er mwyn ei gwneud hi'n haws adfer ystorfa sydd wedi'i difrodi, mae'r datganiad newydd yn darparu'r gallu i arbed gwrthrychau coll trwy ychwanegu'r opsiwn "--expire-to" i'r gorchymyn "git repack", sy'n eich galluogi i nodi ffeil i greu ffeil allanol. copi o'r holl wrthrychau sydd wedi'u dileu. Er enghraifft, i arbed gwrthrychau anghyraeddadwy nad ydynt wedi newid yn y 5 munud diwethaf yn y ffeil backup.git, gallwch ddefnyddio'r gorchymyn: git repack --cruft --cruft-expiration=5.minutes.ago -d --expire -i=../wrth gefn.git

  • Wedi cynyddu'n sylweddol (hyd at 70%) cyflymder y gweithrediad "git grep -cached" wrth chwilio mewn ardaloedd sy'n defnyddio clonio rhannol (siec teneuo) ac y mae mynegeion rhannol (mynegai gwasgaredig) ar eu cyfer. Yn flaenorol, wrth nodi'r opsiwn "-cached", cynhaliwyd y chwiliad yn gyntaf yn y mynegai rheolaidd, ac yna yn y rhai rhannol, a arweiniodd at oedi amlwg wrth chwilio mewn storfeydd mawr.
  • Mae gwiriad y gweinydd o gydlyniad gwrthrychau newydd cyn iddynt gael eu gosod yn y gadwrfa yn ystod y gweithrediad "git push" wedi'i gyflymu. Trwy newid i gyfrif am gysylltiadau datganedig yn unig wrth wirio, mewn ystorfa brawf gyda 7 miliwn o ddolenni, a dim ond 3% ohonynt sy'n cael eu cwmpasu gan y gweithrediad gwthio, roedd y optimizations a gyflwynwyd yn ei gwneud hi'n bosibl lleihau'r amser gwirio 4.5 gwaith.
  • Er mwyn amddiffyn rhag gorlifoedd cyfanrif posibl yn y cod, mae'r gorchymyn "git apply" yn cyfyngu ar faint mwyaf y clytiau y gellir eu prosesu. Os yw maint y clwt yn fwy na 1 GB, bydd gwall nawr yn cael ei arddangos.
  • Er mwyn diogelu rhag gwendidau posibl, mae newidiadau wedi'u gwneud i lanhau gwybodaeth ddiangen o'r penawdau a osodwyd wrth ddefnyddio'r modiwl h2h3 gyda'r opsiwn GIT_TRACE_CURL=1 neu GIT_CURL_VERBOSE=1 ynghyd â HTTP/2.
  • Wrth berfformio siec ar gangen sy'n ddolen symbolaidd i gangen arall, mae'r gorchymyn "git symbolic-ref HEAD" bellach yn dangos enw'r gangen darged yn hytrach nag enw'r symlink.
  • Ychwanegwyd cefnogaeth i'r arg @{-1} i'r opsiwn “-edit-description” (“git branch —edit-description @{-1}”) ar gyfer golygu disgrifiad cangen flaenorol.
  • Ychwanegwyd gorchymyn "git merge-tree --stdin" i basio rhestr o baramedrau trwy fewnbwn safonol.
  • Ar systemau ffeiliau rhwydwaith, mae'r triniwr fsmonitor, sy'n monitro newidiadau yn y system ffeiliau, wedi'i analluogi yn ddiofyn.

Ffynhonnell: opennet.ru

Ychwanegu sylw