Mae'r system rheoli ffynhonnell ddosbarthedig Git 2.31 bellach ar gael. 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 stwnsio 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 679 o newidiadau, a baratowyd gyda chyfranogiad 85 o ddatblygwyr, a chymerodd 23 ran mewn datblygiad am y tro cyntaf. Prif arloesiadau:
- Ychwanegwyd y gorchymyn “git maintenance”, sy'n eich galluogi i berfformio gwaith cyfnodol ar systemau nad ydynt yn cefnogi cron. Er enghraifft, gan ddefnyddio gorchymyn newydd, gallwch drefnu i'r broses becynnu ystorfa redeg o bryd i'w gilydd, fel na fydd yn rhaid i chi aros nes bod y storfa wedi'i chloi pan fydd pecynnu yn cael ei berfformio'n awtomatig wrth redeg gorchmynion amrywiol. Mae'r gorchymyn “cynnal a chadw git” yn caniatáu ichi wneud optimeiddiadau a gweithrediadau i gynnal strwythur gorau posibl yr ystorfa yn y cefndir, heb rwystro'r sesiwn ryngweithiol - unwaith yr awr, gwneir gwaith i lawrlwytho gwrthrychau ffres yn rhagweithiol o'r ystorfa bell a diweddaru'r ffeil gyda'r graff ymrwymo, ac mae'r broses o bacio'r ystorfa yn cychwyn bob nos .
- Cefnogaeth ychwanegol ar gyfer cynnal mynegai gwrthdro (revindex) ar ddisg ar gyfer ffeiliau pecyn. Dwyn i gof bod Git yn storio'r holl ddata ar ffurf gwrthrychau, sydd wedi'u lleoli mewn ffeiliau ar wahân. Er mwyn cynyddu effeithlonrwydd gweithio gyda'r ystorfa, gosodir gwrthrychau hefyd mewn ffeiliau pecyn, lle cyflwynir gwybodaeth ar ffurf llif o wrthrychau yn dilyn ei gilydd (defnyddir fformat tebyg wrth drosglwyddo gwrthrychau gyda'r git fetch a git push gorchmynion). Ar gyfer pob ffeil pecyn, crëir ffeil mynegai (.idx), sy'n eich galluogi i bennu'r gwrthbwyso yn gyflym iawn yn y ffeil pecyn lle mae'r gwrthrych a roddir yn cael ei storio gan ddefnyddio'r dynodwr gwrthrych. Wedi'i gyflwyno yn Git 2.31, mae'r mynegai gwrthdro (.rev) wedi'i anelu at optimeiddio'r broses o bennu dynodwr gwrthrych o wybodaeth am leoliad gwrthrych mewn ffeil pecyn.
Yn flaenorol, cyflawnwyd trosiad o'r fath ar y hedfan wrth ddosrannu'r ffeil pecyn ac fe'i storiwyd yn y cof yn unig, nad oedd yn caniatáu ailddefnyddio mynegeion tebyg a gorfodi'r mynegai i gael ei gynhyrchu bob tro. Mae gweithrediad adeiladu mynegai yn dibynnu ar adeiladu amrywiaeth o barau safle gwrthrych a'i ddidoli yn ôl safle, a all gymryd amser hir ar gyfer ffeiliau pecyn mawr.
Er enghraifft, roedd gweithrediad i arddangos cynnwys gwrthrychau, sy'n defnyddio mynegai uniongyrchol, 62 gwaith yn gyflymach na gweithrediad i arddangos maint gwrthrychau, nad oedd y data safle-i-wrthrych wedi'i fynegeio ar ei gyfer. Ar ôl defnyddio'r mynegai gwrthdro, dechreuodd y gweithrediadau hyn gymryd tua'r un amser. Mae mynegeion gwrthdro hefyd yn caniatáu ichi gyflymu gweithrediadau anfon gwrthrychau wrth weithredu gorchmynion nôl a gwthio trwy drosglwyddo data parod yn uniongyrchol o ddisg. Yn ddiofyn, nid yw mynegeion gwrthdro yn cael eu creu; i'w cynhyrchu, mae angen i chi alluogi'r gosodiad “git config pack.writeReverseIndex true” ac yna pacio'r ystorfa gyda'r gorchymyn “git repack -Ad”.
- Ychwanegwyd optimeiddiadau perfformiad yn seiliedig ar yr ymddangosiad yn y fformat ffeil graff ymrwymo, a ddefnyddir i optimeiddio mynediad at wybodaeth am ymrwymo, data newydd am y rhif cynhyrchu ymrwymo, y gellir ei ddefnyddio i gyflymu gweithrediadau ychwanegol gydag ymrwymiadau.
- Mae'r gallu i ddiystyru enw rhagosodedig y prif gangen mewn ystorfeydd newydd (gosodiad init.defaultBranch) wedi'i ehangu. Wrth gyrchu ystorfeydd allanol, mae git yn ceisio adfer y gangen y mae HEAD yn cyfeirio ati, h.y., os yw'r allanol gweinydd yn defnyddio'r gangen "main" yn ddiofyn, yna bydd y gweithrediad "git clone" yn ceisio nôl "main" yn lleol. Yn Git 2.31, mae cefnogaeth ar gyfer y math hwn o nôl bellach wedi'i weithredu ar gyfer ystorfeydd gwag hefyd. Er enghraifft, wrth glonio ystorfa newydd yn lleol cyn ychwanegu'r clytiau cyntaf ati, bydd y copi lleol bellach yn cynnwys y fersiwn sydd wedi'i gosod ar y gyriant allanol. gweinydd Enw'r gangen feistr ddiofyn.
- Wedi ychwanegu opsiwn --disk-use at y gorchymyn "git rev-list" i roi crynodeb o faint gwrthrychau.
- Gan ragweld y newid sydd i ddod i'r backend uno, mae canfod ailenwi wedi'i optimeiddio'n sylweddol.
- Mae cymorth ar gyfer llyfrgell mynegiant rheolaidd PCRE1 etifeddol wedi'i derfynu.
- Mae'n bosibl gwahardd yn rymus y defnydd o ddolenni byrrach, waeth beth fo'r algorithm stwnsio. Galluogir y gwaharddiad trwy aseinio'r gwerth “na” i'r paramedr core.abbrev.
- Ychwanegwyd yr opsiwn "--path-format=(absolute|relative)" i'r gorchymyn "git rev-parse" i nodi'n benodol a ddylai llwybrau cymharol neu absoliwt fod yn allbwn.
- Mae sgriptiau cwblhau Bash yn ei gwneud hi'n hawdd ychwanegu rheolau cwblhau ar gyfer eich is-orchmynion "git" eich hun.
- Ychwanegwyd opsiwn --stdin i'r gorchymyn "git bundle" i ddarllen cyfeiriadau o'r ffrwd mewnbwn safonol.
- Mae opsiwn newydd wedi'i ychwanegu at y gorchymyn "git log": " --diff-merges = " "
- Ychwanegwyd opsiwn "--deduplicatecan" i orchymyn "git ls-files" i ddileu allbwn dyblyg.
- Ychwanegwyd masgiau newydd i eithrio ystod o ymrwymiadau - " ^!" Ac " ^- "
- Ychwanegwyd opsiynau "--left-only" a "--right-only" i'r gorchymyn "git range-diff" i ddangos dim ond un ochr o'r ystod sy'n cael ei gymharu.
- Ychwanegwyd opsiynau --skip-to= i'r gorchmynion "git diff" a "git log". " a " — cylchdroi-i = » i neidio neu symud i ddiwedd y llwybrau cychwyn.
- Ychwanegwyd opsiwn "--skip-to=" i'r gorchymyn "git difftool". » i ailddechrau sesiwn amharwyd o lwybr ar hap.
- Mae'r Cod Ymddygiad, sy'n diffinio'r egwyddorion sylfaenol ar gyfer datrys sefyllfaoedd o wrthdaro rhwng datblygwyr, wedi'i ddiweddaru i fersiwn 2.0 (defnyddiwyd fersiwn 1.4 yn flaenorol).
Ffynhonnell: opennet.ru
