Rhyddhad rheoli ffynhonnell Git 2.48

Mae'r system rheoli ffynhonnell ddosbarthedig Git 2.48 wedi'i rhyddhau. Mae Git yn gynhyrchiol iawn ac yn darparu offer datblygu aflinol 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, yn ogystal â llofnodion digidol datblygwyr tagiau unigol ac ymrwymo. Mae'r cod Git yn cael ei ddosbarthu o dan y drwydded GPLv2+.

O'i gymharu â'r datganiad blaenorol, mae'r fersiwn newydd yn cynnwys 605 o newidiadau a baratowyd gyda chyfranogiad 93 o ddatblygwyr, y mae 35 ohonynt yn cymryd rhan mewn datblygiad am y tro cyntaf. Prif arloesiadau:

  • Wedi gweithredu'r gallu i adeiladu gan ddefnyddio system adeiladu Meson, yn ogystal â GNU Make a CMake. I adeiladu Git gallwch nawr ddefnyddio'r gorchymyn "meson setup build && ninja -C build". Nodir bod y Makefile a ddefnyddir wrth ddefnyddio GNU Make wedi tyfu i 3887 o linellau ac nid yw mor syml ag yr hoffem. Mae pecyn cymorth Meson yn symleiddio'r system adeiladu, yn gyfleus ar gyfer adeiladu traws-lwyfan, ac yn gwneud adeiladu'n fwy hygyrch i ddechreuwyr neu ddatblygwyr nad oes ganddynt unrhyw brofiad gyda'r Cyfleustodau Make. Nid oes unrhyw gynlluniau i roi’r gorau i roi cymorth i Make a CMake yn y dyfodol agos.
  • Ychwanegwyd opsiynau adeiladu i ganiatáu defnyddio gweithrediadau amgen o'r hash SHA-1 wrth gyfrifo symiau siec a ddefnyddir i wirio cywirdeb blociau data mewn ffeiliau pecyn. Mae perfformiad cyfrifiadau siec yn bwysig iawn; er enghraifft, treulir tua 78% o amser CPU ar eu cyfrifiad wrth glonio ystorfa gyda'r cnewyllyn Linux. Mae'r gweithrediad rhagosodedig yn cynnwys gwiriadau gwrthdrawiad ychwanegol ac amddiffyniad rhag ymosodiadau SHA-1 fel SHAttered a Shambles. Mae amddiffyniad o'r fath, sy'n defnyddio adnoddau ychwanegol, yn gwneud synnwyr yn unig wrth ddefnyddio SHA-1 at ddibenion cryptograffig ac mae'n ddiwerth wrth wirio cywirdeb data mynegai.

    Er mwyn adeiladu Git gyda gweithrediad SHA-1 cyflymach nad yw'n addas ar gyfer systemau crypto, cynigir cyfres o opsiynau *_UNSAFE, er enghraifft, "OPENSSL_SHA1_UNSAFE". Ar GitHub, roedd adeiladu gyda SHA-1 symlach yn caniatáu cynnydd o 10-13% ym mherfformiad gweithrediadau adfer data a chlonio.

  • Ychwanegwyd y gallu i ddefnyddio'r opsiwn “-remerge-diff” yn y gorchymyn “range-diff”, sy'n eich galluogi i ddangos y gwahaniaethau rhwng y canlyniad uno cyffredinol a'r data gwirioneddol a adlewyrchir yn yr ymrwymiad ar ôl prosesu'r gorchymyn “uno”. Wrth ddefnyddio'r opsiwn "--remerge-diff", nid yw'r gwahaniaethau rhwng datrysiadau gwrthdaro yn cael eu gwahanu ar gyfer pob rhiant gangen, ond dangosir y gwahaniaethau cyffredinol rhwng y ffeil sydd â gwrthdaro uno a'r ffeil y mae'r gwrthdaro wedi'i ddatrys. Yng nghyd-destun y gorchymyn range-diff, gall opsiwn newydd fod yn ddefnyddiol ar gyfer cymharu setiau o ymrwymiadau ar ôl i gyfres o ymrwymiadau gael ei fudo gan y gorchymyn rebase gyda'r opsiwn --rebase-merges.
  • Ychwanegwyd y gallu i redeg cyfres prawf Git gyda chanfod gollyngiadau cof wedi'i alluogi. Gan fod git yn darparu cyfleustodau sy'n gadael ar ôl i'r swyddogaeth a elwir yn weithredu, nid oedd gollyngiadau cof yn cael eu hystyried yn broblem fawr o'r blaen. Daeth yr angen i ddileu gollyngiadau cof yn gyfan gwbl yn frys ar ôl i'r gwaith ddechrau ar symud ymarferoldeb mewnol i lyfrgell ar wahân, y gellir ei defnyddio mewn prosesau hirdymor.
  • Mae rhestr o foddau a nodweddion anarferedig y bwriedir eu dirwyn i ben yn y dyfodol wedi dechrau cael ei llunio. Disgwylir y bydd ymarferoldeb anghymeradwy yn cael ei ddileu yn y datganiad Git 3.0, a fydd yn cynnwys newidiadau sy'n torri cydnawsedd yn ôl.
  • Parhau i optimeiddio'r gorchymyn “git for-each-ref”, sy'n dangos rhestr o ddolenni yn yr ystorfa. Mae optimeiddio sy'n cyfuno trinwyr ar gyfer hidlo cyswllt a fformatio allbwn bellach yn berthnasol nid yn unig i allbwn heb ei ddidoli, ond hefyd pan nodir yr opsiwn "--sort".
  • Gwell gweithrediad o'r backend "reftable" gyda storfa bloc i storio cyfeiriadau cangen a thag yn effeithlon yn yr ystorfa. Mae Reftable yn caniatáu ichi gyflymu chwilio, darllen ac ysgrifennu yn sylweddol mewn cadwrfeydd gyda nifer fawr iawn o ddolenni. Mae'r fersiwn newydd yn stopio galw rhai APIs ategol i eithrio'r llyfrgell libgit ymhellach rhag bod yn ddibyniaeth adeiladu. Gweithredu ymdriniaeth addasol o wallau a ddychwelwyd gan swyddogaethau dyrannu cof (nid cof annigonol yn arwain at ddamwain bellach). Mae gweithrediadau creu cyswllt wedi'u cyflymu ac mae'r defnydd o gof wedi'i leihau.
  • Mae gweithrediad clonio rhannol wedi datrys problemau a achosodd ddolennu ystorfa a llygredd ar ôl gweithredu'r gorchymyn "git gc".
  • Wrth weithredu'r gorchymyn "git fetch " os nad oes "refs/remotes/" ar y system leol /HEAD" a'r presenoldeb ar ochr arall y gangen y mae HEAD yn cyfeirio ati, "cyfeiriadau/o bell/ Mae /HEAD" bellach yn ailgyfeirio i'r edefyn hwn. I reoli cydamseru "cyfeiriadau/o bell/ /HEAD" gyda'r gwerth HEAD ar ochr arall y cysylltiad, mae'r gosodiad anghysbell wedi'i ychwanegu. .followRemoteHEAD".
  • Ychwanegwyd gosodiad “o bell. .serverOption" yn debyg i'r opsiwn llinell orchymyn "-serverOption= "
  • Mae'r gorchymyn "git rebase --rebase-merges" yn sicrhau bod enwau cangen yn cael eu defnyddio fel labeli pryd bynnag y bo modd.
  • Wedi ychwanegu baner '-e' at y gorchmynion 'git notes add' a 'git notes append', sy'n agor y nodyn mewn golygydd testun allanol a nodir trwy'r newidyn amgylchedd GIT_EDITOR.
  • Gwell cydnawsedd â GCC 15 a safon C23.
  • Mae cefnogaeth ar gyfer fersiynau hŷn o libcURL a Perl wedi dod i ben.

Ffynhonnell: opennet.ru

Ychwanegu sylw