Publikuar lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.48. Git shquhet për performancën e tij të lartë dhe ofron mjete për zhvillim jo-linear, të bazuar në degrada dhe bashkimin e degëve. Për të siguruar integritetin e historisë dhe qëndrushmërinë ndaj ndryshimeve "pasuri", përdoren hashingu implicit i të gjithë historisë së mëparshme në çdo commit, si dhe dëshmimi me nënshkrime digjitale të zhvilluesve për etiketat dhe commit-et individuale. Kodi i Git shpërndahen nën licencën GPLv2+.
Në krahasim me lëshimin e kaluar, versioni i ri përfshin 605 ndryshime, të përgatitura me pjesëmarrjen e 93 zhvilluesve, nga të cilët 35 janë pjesëmarrës për herë të parë në zhvillim. Novitete kryesore:
- ĂshtĂ« realizuar mundĂ«sia e ndĂ«rtimit duke pĂ«rdorur sistemin e ndĂ«rtimit Meson, pĂ«rveç GNU Make dhe CMake. Tani, pĂ«r ndĂ«rtimin e Git, mund tĂ« pĂ«rdoret komandĂ«n "meson setup build && ninja -C build". VĂ«rehet se Makefile, i pĂ«rdorur gjatĂ« pĂ«rdorimit tĂ« GNU Make, Ă«shtĂ« rritur nĂ« 3887 rreshta dhe nuk Ă«shtĂ« aq i thjeshtĂ« sa do tĂ« dĂ«shironim. Mjeti Meson thjeshton punĂ«n me sistemin e ndĂ«rtimit, Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r ndĂ«rtimin pĂ«r platforma tĂ« ndryshme dhe e bĂ«n ndĂ«rtimin mĂ« tĂ« accesueshĂ«m pĂ«r fillestarĂ«t ose zhvilluesit qĂ« nuk kanĂ« pĂ«rvojĂ« me mjetin Make. Nuk planifikohet tĂ« ndĂ«rpritet mbĂ«shtetja pĂ«r Make dhe CMake nĂ« njĂ« tĂ« ardhme tĂ« afĂ«rt.
- Janë shtuar opsione ndërtimi që lejojnë përdorimin e implementimeve alternative të hash SHA-1 gjatë llogaritjes së checksum-ëve, të cilat përdoren për të verifikuar integritetin e blloqeve të të dhënave në skedarët pack. Performanca e llogaritjes së checksum-ëve ka rëndësi të madhe, për shembull, për llogaritjen e tyre gjatë klonimit të një depoje me bërthamën Linux, shpenzohet rreth 78% e kohës së procesorit. Implementimi i përdorur si standard përfshin kontrolle shtesë për kolizionet dhe mbrojtjen nga sulmet ndaj SHA-1, si SHAttered dhe Shambles. Një mbrojtje e tillë, e cila konsumon burime të tjera, ka kuptim vetëm kur përdoret SHA-1 për qëllime kriptografike dhe është e panevojshme gjatë verifikimit të integritetit të të dhënave indekse.
Për ndërtimin e Git me një implementim më të shpejtë të SHA-1, i papërshtatshëm për sistemet kriptografike, ofrohet një seri opsionesh *_UNSAFE, për shembull, "OPENSSL_SHA1_UNSAFE". Në GitHub, ndërtimi me SHA-1 të thjeshtuar ka lejuar një rritje prej 10-13% të performancës për operacionet e nxjerrjes dhe klonimit të të dhënave.
- Shtoi mundĂ«sia e pĂ«rdorimit nĂ« komandĂ«n «range-diff» opsionin «âremerge-diff», duke lejuar shfaqjen e dallimeve midis rezultatit tĂ« pĂ«rbashkĂ«t tĂ« bashkimit dhe tĂ« dhĂ«nave aktuale, tĂ« pasqyruara nĂ« komit pas procesit tĂ« komandĂ«s «merge». Me pĂ«rdorimin e opsionit «âremerge-diff», dallimet midis zgjidhjeve tĂ« konflakeve nuk ndahen pĂ«r çdo degĂ« prind, por shfaqen dallimet e pĂ«rgjithshme midis skedarit me konflake tĂ« bashkimit dhe skedarit, nĂ« tĂ« cilin konflatet janĂ« zgjidhur. NĂ« kontekstin e komandĂ«s «range-diff», opsioni i ri mund tĂ« jetĂ« i dobishĂ«m pĂ«r krahasimin e grupeve tĂ« komiteve pas transferimit tĂ« sekuencĂ«s sĂ« komiteteve nga ekipi «rebase» me opsionin «ârebase-merges».
- Shtoi mundësinë e ekzekutimit të një grupi testues Git me përfshirjen e modalitetit të identifikimit të rrjedhjeve të memories. Duke qenë se git ofron mjete që përfundojnë punën pas ekzekutimit të funksionit të thirrur, rrjedhjet e memories më parë nuk ishin konsideruar si një problem të madh. Nevoja për eliminimin e plotë të rrjedhjeve të memories u bë e rëndësishme pas fillimit të punës për nxjerrjen e funksionalitetit të brendshëm në një bibliotekë të veçantë, e cila mund të përdoret në procese afatgjata.
- Filloi formimi i listës së mënyrave dhe mundësive të vjetra, mbështetjen e të cilave planifikojnë të ndalojnë në të ardhmen. Parashikohet se heqja e funksionalitetit të vjetruar do të ndodhë në lëshimin e Git 3.0, në të cilin do të përfshihen ndryshime që prishin komatibilitetin mbrapsht.
- Vazhdoi optimizimi i funksionit tĂ« komandĂ«s «git for-each-ref», e cila shfaq listĂ«n e lidhjeve nĂ« repozitor. Optimizimi, i cili bashkon trajtuesit pĂ«r filtrimin e lidhjeve dhe formatimin e daljes, tani aplikohet jo vetĂ«m pĂ«r dalje tĂ« pa renditur, por edhe kur specifikohet opsioni «âsort».
- PĂ«rmirĂ«simi i implementimit tĂ« back-end tĂ« «reftable» me ruajtje nĂ« blloqe pĂ«r njĂ« ruajtje efektive nĂ« depozita tĂ« lidhjeve me deget dhe etiketat. Reftable lejon njĂ« kĂ«rkim, lexim dhe shkrim shumĂ« mĂ« tĂ« shpejtĂ« nĂ« depozita me njĂ« numĂ«r jashtĂ«zakonisht tĂ« madh lidhjesh. NĂ« versionin e ri, Ă«shtĂ« ndĂ«rprerĂ« qasja nĂ« disa API ndihmĂ«s pĂ«r tĂ« eliminuar mĂ« tej bibliotekĂ«n libgit nga varĂ«sitĂ« e ndĂ«rtimit. ĂshtĂ« realizuar njĂ« trajtim adaptiv i gabimeve tĂ« kthyer nga funksionet e alokimit tĂ« memories (mungesa e memories tani nuk shkakton njĂ« pĂ«rfundim tĂ« mprehtĂ« tĂ« punĂ«s). Operacionet e krijimit tĂ« lidhjeve janĂ« pĂ«rshpejtuar dhe konsumimi i memories Ă«shtĂ« reduktuar.
- Në implementimin e klonimit të pjesshëm janë zgjidhur problemet që shkaktonin cikle dhe dëmtim të depozitës pas ekzekutimit të komandës «git gc».
- Kur ekzekutohet komanda «git fetch », në rast se nuk ka «refs/remotes//HEAD» në sistemin lokal dhe ka një dege tjetër nga e cila lidhet HEAD, «refs/remotes//HEAD» tani drejtohet në këtë degë. Për menaxhimin e sinkronizimit të «refs/remotes//HEAD» me vlerën e HEAD në anën tjetër të lidhjes është shtuar konfigurimi remote..followRemoteHEAD.
- ĂshtĂ« shtuar konfigurimi «remote..serverOption» i ngjashĂ«m me opsionin e komandĂ«s nĂ« linjĂ« «âserverOption=».
- NĂ« komandĂ«n «git rebase ârebase-merges» Ă«shtĂ« siguruar pĂ«rdorimi i emrave tĂ« degĂ«ve si etiketat kur Ă«shtĂ« e mundur.
- NĂ« komandat âgit notes addâ dhe âgit notes appendâ Ă«shtĂ« shtuar flag â-eâ, i cili hap njĂ« shĂ«nim nĂ« njĂ« redaktor tekstual tĂ« jashtĂ«m, i caktuar pĂ«rmes variablit tĂ« ambientit GIT_EDITOR.
- ĂshtĂ« pĂ«rmirĂ«suar kompatibiliteti me GCC 15 dhe standardin C23.
- ĂshtĂ« ndĂ«rprerĂ« mbĂ«shtetje pĂ«r versionet e vjetra tĂ« libcURL dhe Perl.
Burimi: opennet.ru
