
Të paraqitura lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.55. Ndër ndryshimet kyçe: përfshirja e përgjithshme e ndërtimit me Rust, implementimi i procesit fsmonitor për Linux, një strategji e re për ripaketimin e indeksit incremental MIDX, komandë git history fixup për korrigjimin e commit-it, optimizimi i gjenerimit të hartave të aksesueshmërisë së objekteve, mbështetje për ekzekutimin paralel të hooks, komandë git format-rev. Kodi Git distribuohet nën licencën GPLv2+.
Në krahasim me nxjerrjen e kaluar, në versionin e ri janë pranuar 505 ndryshime, të përgatitura me pjesëmarrjen e 100 zhvilluesve, 33 prej të cilëve merrnin pjesë për herë të parë në zhvillimin e Git.
Novitetet kryesore (github.blog, gitlab.com/blog, gitlab.com/git-scm):
- Në mënyrë të paracaktuar u përfshi mbështetje për komponentë të shkruar në Rust. Kompilatori rustc u shtua në mesin e varësive të ndërtimit. Për të ndërtuar pa Rust, mund të përdorni mars NO_RUST=1 kur ekzekutoni utilitarin make ose -Drust=disabled gjatë ekzekutimit të meson configure. Mundësia për të çaktivizuar ndërtimin me Rust do të mbështetet deri në versionin Git 3.0, ku Rust do të jetë aktivizuar është një nga varësitë e detyrueshme. Një shtresë për portabilitetin midis konfigurimeve me hash SHA-1 dhe SHA-256 është realizuar në gjuhën Rust, si dhe disa funksione të brendshme, të tilla si kodimi dhe dekodimi i vlerave të numrave me gjatësi të ndryshme. Në të ardhmen pritet një rishikim në Rust i komponentëve më të rëndësishëm të brendshëm të Git.
- NĂ« ekipin eksperimental "git history", i cili ofron mundĂ«si pĂ«r rishkrimin e historisĂ« sĂ« ndryshimeve, Ă«shtĂ« shtuar operacioni "git history fixup" pĂ«r tĂ« korrigjuar njĂ« komit. Operacioni fixup lejon kalimin e ndryshimeve tĂ« shtuara pĂ«rmes git add nĂ« njĂ« komit mĂ« tĂ« hershĂ«m dhe automatikisht rishkruan tĂ« gjitha komitet e mĂ«poshtme si njĂ« analogji e ekzekutimit tĂ« komandĂ«s git commit âfixup= dhe ekzekutimit tĂ« git rebase âautosquash ~.
- Për platformën Linux është realizuar një proces në sfond fsmonitor, që monitoron ndryshimet në sistemin e skedarëve duke përdorur mekanizmin inotify dhe lejon shmangien e përsëritjes së të gjithë katalogut të punës gjatë ekzekutimit të komandave të tilla si git status. Aktivizimi bëhet përmes cilësimit "core.fsmonitor».
- NĂ« komandĂ«n git repack Ă«shtĂ« shtuar modaliteti âwrite-midx=incremental, i cili implementon njĂ« strategji tĂ« re pĂ«r rinovimin e metadatat nĂ« indeksin MIDX-incremental (indeksi multi-pack), qĂ« lejon tĂ« shmangen ripaketimi i tĂ«rĂ« indeksit. NĂ« indeksin e shumĂ«paketuara, nĂ« vend tĂ« njĂ« indeksi tĂ« madh qĂ« pĂ«rmban informacion mbi shpĂ«rndarjen e objekteve nĂ« skedarĂ« pack, aplikohet ndarja nĂ« njĂ« shtresĂ« â çdo shtresĂ« mbulon njĂ« numĂ«r tĂ« caktuar skedarĂ«sh pack dhe ruhet nĂ« njĂ« skedar bitmap tĂ« veçantĂ«. Kjo strukturĂ« lejon qĂ« tĂ« shtohen nĂ« indeks tĂ« dhĂ«na pĂ«r objekte nĂ« skedarĂ«t e rinj pack, duke bashkangjitur shtresa tĂ« reja nĂ« indeks pa e rindĂ«rtuar tashmĂ« ekzistuesit. Komanda git repack âwrite-midx=incremental lejon tĂ« shtohet njĂ« shtresĂ« e re nĂ« indeksin MIDX-incremental, qĂ« mbulon skedarĂ«t pack tĂ« sapodhur. NĂ« kombinim me modalitetin e paketimit tĂ« depozitave âgeometric, komanda e re ofron mundĂ«sinĂ« pĂ«r tĂ« bashkuar objekte tĂ« reja nga disa skedarĂ« pack nĂ« njĂ« skedar mĂ« tĂ« madh pack dhe, nĂ«se Ă«shtĂ« e nevojshme, tĂ« kryejĂ« paketimin dhe bashkimin e disa shtresave fqinj tĂ« indeksit MIDX-incremental. Kjo strategji lejon, gjatĂ« ekzekutimit tĂ« git repack, tĂ« shkruhen vetĂ«m shtresat e sipĂ«rme, duke i lĂ«nĂ« tĂ« vjetra tĂ« mĂ«dha tĂ« paprekura, si dhe tĂ« pĂ«rjashtohet rritja e pakontrolluar e zinxhirit tĂ« shtresave, duke mbajtur numrin e pĂ«rgjithshĂ«m tĂ« shtresave nĂ« njĂ« nivel qĂ« Ă«shtĂ« proporcionale me logarifmin e numrit tĂ« pĂ«rgjithshĂ«m tĂ« objekteve.
- Generimi i bitmap-eve të disponueshmërisë së objekteve është optimizuar ndjeshëm falë një algoritmi të ri për kalimin nëpër pemët e objekteve, që përjashton rekursionin e panevojshëm, ruan pozitat e objekteve, rendit bitmap-et para bashkimit të tyre përmes operacionit XOR dhe kalon nëpër kodin për krijimin e bitmap-eve të pseudo-bashkimit (pseudo-merge). Në depozitat testuese, optimizimet kanë lejuar që koha e gjenerimit të bitmap-eve të reduktohet nga 612 në 294 sekonda.
- ĂshtĂ« implementuar mundĂ«sia pĂ«r ekzekutimin paralel tĂ« pavarur hook-esh nĂ« skedarĂ«t e konfigurimit. Huket qĂ« ndihmojnĂ« nĂ« pĂ«rbashkimin e gjendjes sĂ« pĂ«rbashkĂ«t ose qĂ« e konsiderojnĂ« atĂ«, siç janĂ« ato qĂ« modifikojnĂ« shĂ«nimet e komiteteve ose inspektojnĂ« indekset dhe pemĂ«n e punĂ«s, nuk mund tĂ« ekzekutohen paralelisht. MegjithatĂ«, Ă«shtĂ« e mundur tĂ« ekzekutohen paralelisht huke pĂ«r kontrollin me linter dhe pĂ«r kryerjen e testeve njĂ«she. Huket qĂ« lejojnĂ« ekzekutimin paralel konfigurohen pĂ«rmes parametrave hook. emri_hukĂ«s.parallel = true. Numri i punĂ«ve qĂ« mund tĂ« ekzekutohen nĂ« tĂ« njĂ«jtĂ«n kohĂ« pĂ«rcaktohet pĂ«rmes konfigurimit hook. punĂ«t, hook..punĂ«t ose opsionit tĂ« linjĂ«s sĂ« komandĂ«s -j.
- Ekipa git pack-objects ka njĂ« veçori tĂ« re qĂ« lejon specifikimin e filtreve si blob:none, blob:limit=<n>, tree:0, object:type=<type>, sparse:<oid> dhe combine:. NĂ« testin e zhvilluar, pĂ«rjashtimi i blobĂ«ve gjatĂ« ekzekutimit tĂ« âpath-walk lejoi njĂ« reduktim prej 16% tĂ« madhĂ«sisĂ« sĂ« skedarit tĂ« formuar.
- Shtuar komanda git format-rev për formatimin e revizionëve dhe emrave të objekteve që përmenden në listat e komiteteve ose ndodhen në tekst të rastësishëm (p.sh., e përdor në hooks për të përpunuar shënimet e komiteteve).
git last-modified | git format-rev âstdin-mode=text âformat=%an
Junio C Hamano builtin/commit.c
- Aktivizimi automatik i shënimeve të shumicës së sekuencave të kontrollit të terminalit në mesazhet e informacionit dhe tekstin e gabimeve të transmetuara nga serveri. Kur shoqërohej me një server keqdashës, këto sekuenca escape mund të përdoren për të fshehur ose modifikuar dalje, për shembull, përmes sekuencave escape për të lëvizur treguesin dhe për të pastruar tekstin. Mbështetje për sekuenca escape për theksimin e elementeve me ngjyra është lënë.
- Komanda git checkout -m tani ruan automatikisht ndryshimet lokale konflikti në zonën stash pa nevojën për të zgjidhur menjëherë konfliktin.
- Në komandën git push u shtua mundësia për të dërguar një degë në disa serverë extern të Git me një komandë. Për shembull, për të dërguar degën main jo vetëm në serverin kryesor, por edhe në kopjet e tij, mund të krijoni një grup publikimi nga serverët github, gitlab dhe mirror:
git config remotes.publish "github gitlab mirror"
git push publish main
- NĂ« komandĂ«n git log âgraph u shtua opsioni âgraph-lane-limit=<N> pĂ«r tĂ« kufizuar numrin e vijave vertikale gjatĂ« vizualizimit tĂ« degĂ«ve, duke lĂ«nĂ« kĂ«shtu hapĂ«sirĂ« nĂ« ekran pĂ«r tĂ« dhĂ«nat mbi komitetet nĂ« repozitorĂ«t me numĂ«r tĂ« madh degĂ«sh.
âŠ
* | | | | 619931f561 Bashko degĂ«n âdl/posix-unused-warning-clangâ
|\ \ \ \ \
| * | | | ~ cf48887610 compat/posix.h: thjeshtoni krahasimin GIT_GNUC_PREREQ()
| * | | | ~ ffd45926dc compat/posix.h: pastroni GIT_GNUC_PREREQ() dhe UNUSED
|\ \ \ \ \~
| * | | | ~ 3f5203eeb4 ls-files: filtro pathspec para lstat
- NĂ« komandat git log dhe git rev-list u shtua opsioni âmax-count-oldest=<N>, qĂ« lejon zgjedhjen e N komiteteve mĂ« tĂ« vjetra nĂ« intervalin e dhĂ«nĂ«.
Burimi: linux.org.ru
