Avalehe Juhtimine Git 2.48. Git pakub kĂ”rget jĂ”udlust ja sisaldab vahendeid mittelineaarseks arenduseks, mis pĂ”hinevad harude ja ĂŒhenduste loomisel. Ajaloo terviklikkuse ja tagasivaatavate muudatuste kindlustamiseks kasutatakse kĂ”igi eelnevate ajaloo varjatud hash'imist igas kommis ning arendajate digitaalsete allkirjade kinnitust eraldi siltide ja kommitĂ€idete jaoks. Git'i kood levitatakse GPLv2+ litsentsi alusel.
VÔrreldes eelmise vÀljaandega on uude versiooni lisatud 605 muudatust, mille on teinud 93 arendajat, kellest 35 osaleb arenduses esmakordselt. Peamised uuendused:
- Lisatud on toetav vĂ”imalus ehitada Meson'i ehitussĂŒsteemi kasutades, lisaks GNU Make'ile ja CMake'ile. Giti ehitamiseks saab kasutada kĂ€sku «meson setup build && ninja -C build». TĂ€heldatakse, et GNU Make'i kasutamisel on Makefile paisunud 3887 reale ja ei ole nii lihtne, kui sooviks. Meson'i tööriist komplekt lihtsustab ehitussĂŒsteemi kasutamist, on mugav ĂŒlekandetehnoloogiatel ja muudab ehitamise ligipÀÀsetavamaks algajatele vĂ”i arendajatele, kellel ei ole kogemusi Make'i utiliidiga. Toetuse lĂ”petamine Make'ile ja CMake'ile lĂ€hitulevikus ei ole planeeritud.
- Lisatud on ehitamise valikud, mis vĂ”imaldavad kaaluda alternatiivseid SHA-1 hÀÀletusi kontrollsummade arvutamiseks, mida kasutatakse andmepakettide integriteedi kontrollimiseks. Kontrollsummade arvutamise efektiivsus on suurenenud, nĂ€iteks kulub Linuxi tuumikuga hoidlas kopeerimistöös umbes 78% protsessoriajast. Vaikimisi kasutatav realiseerimine sisaldab lisakontrollide konfliktide tuvastamiseks ja SHA-1 rĂŒnnakute eest kaitsmiseks, nagu SHAttered ja Shambles. Selline kaitse, mis tarbib tĂ€iendavaid ressursse, on mĂ”istlik ainult siis, kui SHA-1 kasutatakse krĂŒptograafilistel eesmĂ€rkidel ja on kasutu indeksandmete integriteedi kontrollimisel.
Git'i kiirema SHA-1 rakenduse koostamiseks, mis ei sobi krĂŒptosĂŒsteemidele, on pakutud rida *_UNSAFE valikuid, nĂ€iteks "OPENSSL_SHA1_UNSAFE". GitHubis lubas lihtsustatud SHA-1 koostamine suurendada andmete vĂ€ljatoomise ja kloonimise operatsioonide jĂ”udlust 10-13%.
- On lisatud vĂ”imalus kasutada "range-diff" kĂ€sus valikut "âremerge-diff", et nĂ€idata erinevusi ĂŒhise ĂŒhinemise tulemuse ja tĂ”eliste andmete vahel, mis on kajastatud seotud kĂ€sus pĂ€rast "merge" kĂ€su töötlemist. "âremerge-diff" valiku kasutamisel ei eristata konfliktide lahendamise erinevusi iga vanema haru jaoks, vaid esitatakse ĂŒhised erinevused faili vahel, millel on ĂŒhinemise konfliktid, ja faili vahel, milles konfliktid on lahendatud. Uus valik vĂ”ib osutuda kasulikuks "range-diff" kĂ€su kontekstis, et vĂ”rrelda commitide kogumeid pĂ€rast commitide jĂ€rjestuse ĂŒmberpaigutamist "rebase" kĂ€su koos "ârebase-merges" valikuga.
- On lisatud vĂ”imalus kĂ€ivitada Git'i testkomplekt, lĂŒlitades sisse mĂ€lulekkete avastamise reĆŸiimi. Kuna git pakub utiliite, mis lĂ”petavad töö pĂ€rast kutset, ei peetud mĂ€lulekkete probleemiks. MĂ€lulekete tĂ€ieliku kĂ”rvaldamise vajadus sai oluliseks, kui hakati töötama sisefunktsionaalsuse vĂ€ljatoomiseks eraldi teekidesse, mida saab kasutada pikaajalistes protsessides.
- On alanud vananenud reĆŸiimide ja omaduste loetelu koostamine, mille toe lĂ”petamine on planeeritud tulevikus. Eeldatakse, et vananenud funktsionaalsuse eemaldamine toimub Git 3.0 vĂ€ljaandes, mis sisaldab tagasiĂŒhilduvust rikkuvaid muudatusi.
- On jĂ€tkatud "git for-each-ref" kĂ€su optimeerimist, mis kuvab loendi viidatud asukohtadest hoidlas. Optimeerimine, mis kombineerib viidete filtreerimise ja vĂ€ljundi vormindamise töötlejad, kehtib nĂŒĂŒd mitte ainult sorteeritud vĂ€ljundi, vaid ka "âsort" valiku mÀÀramisel.
- Parandatud «reftable» tagakĂŒlje teostust plokkhoidla abil, et tĂ”hustada linkide ja siltide hoidmist hoidlas. Reftable vĂ”imaldab oluliselt kiirendada otsimist, lugemist ja kirjutamist hoidlatest, kus on vĂ€ga palju linke. Uues versioonis on lĂ”petatud juurdepÀÀs mĂ”nedele abistavatele API-dele, et veelgi vĂ€hendada libgit'i tekitatud sĂ”ltuvusi. Rakendatud on adaptiivne vigade kĂ€sitlemine, mis tagastatakse mĂ€luhaldusfunktsioonide kaudu (mĂ€lupuudus ei pĂ”hjusta enam rakenduse ootamatut lĂ”petamist). Kiirendatud on linkide loomise operatsioone ning vĂ€hendatud mĂ€lutarbimist.
- Osalise kloonimise teostuses on lahendatud probleemid, mis viisid tsĂŒkliteni ja hoidlate kahjustumiseni pĂ€rast «git gc» kĂ€su tĂ€itmist.
- KĂ€skluse «git fetch » tĂ€itmisel, juhul kui kohalikul sĂŒsteemil puudub «refs/remotes//HEAD» ning teisel pool on soovitud haru, millele HEAD osutab, suunatakse «refs/remotes//HEAD» nĂŒĂŒd sellele harule. «refs/remotes//HEAD» sĂŒnkroniseerimise haldamiseks teise poole HEAD vÀÀrtusega on lisatud seadistus remote..followRemoteHEAD.
- Lisatud seade «remote..serverOption», mis on sarnane kĂ€surea valikule «âserverOption=».
- KĂ€skluses «git rebase ârebase-merges» on tagatud, et kui vĂ”imalik, kasutatakse harude nimesid siltidena.
- KĂ€skudes âgit notes addâ ja âgit notes appendâ on lisatud lipukene â-eâ, mis avab mĂ€rkuse vĂ€lises tekstiredaktoris, mis on mÀÀratud keskkonnamuutujaga GIT_EDITOR.
- Parandatud ĂŒhilduvus GCC 15 ja C23 standardiga.
- Vanade libcURL ja Perli versioonide tugi on lÔpetatud.
Allikas: opennet.ru
