Ka delë release i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.55. Ndër ndryshimet kryesore: përfshirja e ndërtimit me Rust si e dhënë nga defekti, realizimi i procesit fsmonitor për Linux, strategjia e re e rindarjes së indeksit incremental MIDX, komanda «git history fixup» për të korrigjuar kometimin, optimizimi i gjenerimit të kartave të disponueshmërisë së objekteve, mbështetje për ekzekutimin paralel të hook-ëve, komanda «git format-rev». Kodi i Git shpërndahet nën licencën GPLv2+.
Në krahasim me versionin e kaluar, në versionin e ri janë pranuar 505 ndryshime të përgatitura nga 100 zhvillues, 33 prej të cilëve morën pjesë për herë të parë në zhvillimin e Git. Novitetet kryesore (1, 2, 3):
- Mbështetje për komponentët në gjuhën Rust është e aktivizuar si e dhënë nga defekti. Kompajleri rustc
Ă«shtĂ« shtuar nĂ« varĂ«sitĂ« e ndĂ«rtimit. PĂ«r ndĂ«rtim pa Rust, mund tĂ« pĂ«rdorni flag-un «NO_RUST=1» gjatĂ« ekzekutimit tĂ« utilitarit 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Ă« degĂ«n Git 3.0, nĂ« tĂ« cilĂ«n Rust do tĂ« bĂ«het njĂ« varĂ«si e domosdoshme. NjĂ« ndĂ«rfaqe nĂ« gjuhĂ«n Rust Ă«shtĂ« zbatuar pĂ«r portabilitetin midis konfigurimeve me hashet SHA-1 dhe SHA-256, si dhe disa funksione tĂ« brendshme, tĂ« tilla si kodimi dhe dekodimi i vlerave tĂ« numrave me gjatĂ«si tĂ« ndryshueshme. NĂ« tĂ« ardhmen, pritet njĂ« ripunim nĂ« Rust i komponenteve tĂ« brendshme mĂ« tĂ« rĂ«ndĂ«sishme tĂ« Git. - NĂ« komandĂ«n eksperimentale «git history», e cila ofron mundĂ«si pĂ«r tĂ« riparuar historinĂ« e ndryshimeve, Ă«shtĂ« shtuar funksioni «git history fixup» pĂ«r tĂ« korrigjuar kometimin. Veprimi «fixup» lejon transferimin e ndryshimeve tĂ« shtuara pĂ«rmes «git add» nĂ« njĂ« kometim mĂ« tĂ« hershĂ«m dhe automatikisht rreth Kombinimin e tĂ« gjithĂ« kometimeve tĂ« mĂ«vonshme si nĂ« ekzekutimin e komandĂ«s «git commit âfixup=<commit>» dhe nisjen e «git rebase âautosquash <commit>~».
- Për platformën Linux, është zbatuar një proces sfondor fsmonitor, që ndjek ndryshimet në sistemin e skedarëve duke përdorur mekanizmin inotify dhe që lejon evitimin e përshkallëzimit të tërë katalogut të punës gjatë ekzekutimit të komandave të tilla si «git status». Aktivizimi realizohet përmes konfigurimit «core.fsmonitor».
- NĂ« komandĂ«n «git repack» Ă«shtĂ« shtuar moda «âwrite-midx=incremental», e cila implementon njĂ« strategji tĂ« re pĂ«r pĂ«rmirĂ«simin e metadatave nĂ« indekset MIDX-incrementale (multi-pack index), duke lejuar qĂ« tĂ« shmanget ripaketimi i tĂ«rĂ« indekseve. NĂ« indeksin e shumĂ«paketave inkrementale, nĂ« vend tĂ« njĂ« indeksi tĂ« madh qĂ« pĂ«rmban informacionin mbi shpĂ«rndarjen e objekteve nĂ« skedarĂ«t pack, pĂ«rdoret ndarja nĂ« shtresa â çdo shtresĂ« mbulon njĂ« numĂ«r tĂ« caktuar skedarĂ«sh pack dhe ruhet nĂ« njĂ« skedar bitmap tĂ« veçantĂ«. Kjo strukturĂ« lejon shtimin e tĂ« dhĂ«nave mbi objekte nĂ« skedarĂ«t e rinj pack, duke i bashkangjitur indekseve shtresa tĂ« reja pa rikonstruktimin e shtresave ekzistuese.
Komanda «git repack âwrite-midx=incremental» lejon shtimin e njĂ« shtrese tĂ« re nĂ« indeksin MIDX-inkremental, e cila mbulon skedarĂ«t e rinj pack tĂ« krijuar sĂ« fundmi. NĂ« kombinim me modĂ«n e paketimit tĂ« depozitave «âgeometric», komanda e re ofron mundĂ«sinĂ« pĂ«r tĂ« bashkuar objektet e 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 fqinje tĂ« indeksit MIDX-inkremental. Kjo strategji lejon qĂ« gjatĂ« ekzekutimit tĂ« «git repack» tĂ« rishkruhen vetĂ«m shtresat e sipĂ«rme, duke lĂ«nĂ« tĂ« paprekura shtresat e vjetra tĂ« mĂ«dha, si dhe tĂ« shmanget rritja e pakontrolluar e zinxhirit tĂ« shtresave, duke e mbajtur numrin e pĂ«rgjithshĂ«m tĂ« shtresave nĂ« njĂ« nivel proporcional me logaritin e numrit tĂ« pĂ«rgjithshĂ«m tĂ« objekteve.
- Gërshetimi i hartave të disponueshmërisë së objekteve është optimizuar ndjeshëm përmes një algoritmi të ri për kalimin e pemës së objekteve, që përjashton rikthimin e tepërt, ruan pozitat e objekteve, rendit hartat bitmap para se t'i bashkonte me operacionin XOR dhe ripunon kodin për krijimin e hartave bitmap të pseudo-bashkimit (pseudo-merge). Në depozitat testuese, optimizimet kanë lejuar që koha e krijimit të hartave bitmap të ulet nga 612 në 294 sekonda.
- Implementuar mundësia për ekzekutimin paralel të hook-ëve të pavarur në skedarët e konfigurimit. Hook-ët që ndikojnë në gjendjen e përbashkët ose e kanë parasysh atë, siç janë ato që ndryshojnë shënimet e komiteteve ose që inspektojnë indeksin dhe pemën e punës, nuk mund të ekzekutohen paralelisht. Megjithatë, është e mundur të ekzekutohen në mënyrë paralel hook-ët për kontrollin nga linteri dhe për kryerjen e testeve unitare. Hook-ët që lejojnë ekzekutimin paralel konfigurohen përmes parametrit «hook.emri_i_hookut.parallel = true». Numri i punëve që ekzekutohen njëkohësisht përcaktohet përmes konfigurimit hook.jobs, hook..jobs ose opsionit të linjës së komandës «-j».
- NĂ« komandĂ«n «git pack-objects âpath-walk» Ă«shtĂ« implemetuar mundĂ«sia pĂ«r tĂ« caktuar filtrore, tĂ« tilla si «blob:none», «blob:limit=<n>», «tree:0», «object:type=<type>», «sparse:<oid>» dhe «combine:». NĂ« njĂ« test tĂ« realizuar, heqja e blob-eve gjatĂ« ekzekutimit tĂ« «âpath-walk» ka lejuar njĂ« zvogĂ«lim prej 16% tĂ« madhĂ«sisĂ« sĂ« skedĂ«s pack tĂ« formuar.
- Shtuar komanda «git format-rev» për formatimin e revizionit dhe emrave të objekteve që përmenden në listat e komiteteve ose që ndodhen në tekstin e rastësishëm (p.sh., mund të përdoret në hook për përpunimin e shënimeve të komiteteve).
git last-modified | git format-rev âstdin-mode=text âformat=%an
Junio C Hamano builtin/commit.c
- Ekranimi i shumicĂ«s sĂ« sekuencave kontrolluese tĂ« terminalit Ă«shtĂ« aktivizuar si paraprakisht nĂ« mesazhet informative dhe tekstin e gabimeve qĂ« transmetohen. serverKur bĂ«het njĂ« kĂ«rkesĂ« pĂ«r njĂ« tĂ« dĂ«mshĂ«m, serverit sekuencat e tilla escape mund tĂ« pĂ«rdoren pĂ«r tĂ« fshehur ose modifikur daljen, p.sh., pĂ«rmes sekuencave escape pĂ«r tĂ« lĂ«vizur kursorin dhe pĂ«r tĂ« pastruar tekstin. ĂshtĂ« mbajtur mbĂ«shtetje pĂ«r sekuencat escape pĂ«r tĂ« theksuar elementet me ngjyrĂ«.
- Komanda «git checkout -m» tani ruan automatikisht ndryshimet lokale konfliktuale në zonën stash pa nevojën për të zgjidhur menjëherë konfliktin.
- Në komandën «git push» është shtuar mundësia për të shtuar degën në disa servera të jashtëm Git me një komandë. P.sh., për të dërguar degën main jo vetëm në serverin kryesor, por edhe në pasqyrat, mund të krijoni një grup «publish» nga serverësh «github», «gitlab» dhe «mirror»:
git config remotes.publish «github gitlab mirror»
git push publish main - NĂ« komandĂ«n «git log âgraph» Ă«shtĂ« shtuar opsioni «âgraph-lane-limit=<N>» pĂ«r tĂ« kufizuar numrin e vijave vertikale gjatĂ« vizualizimit tĂ« degĂ«ve, çka lejon lĂ«nien e hapĂ«sirĂ«s nĂ« ekran pĂ«r tĂ« dhĂ«nat rreth komiteteve nĂ« repozitoret me numĂ«r tĂ« madh degĂ«sh.
âŠ
* | | | | 619931f561 Bashko degen âdl/posix-unused-warning-clangâ
|\ \ \ \ \
| * | | | ~ cf48887610 compat/posix.h: thjeshtësim i krahasimit GIT_GNUC_PREREQ()
| * | | | ~ ffd45926dc compat/posix.h: pastrim i GIT_GNUC_PREREQ() dhe UNUSED
|\ \ \ \ \~
| * | | | ~ 3f5203eeb4 ls-files: filtro rrugĂ«t para lstat - NĂ« komandat «git log» dhe «git rev-list» Ă«shtĂ« shtuar opsioni «âmax-count-oldest=», i cili lejon tĂ« zgjidhni N komitetet mĂ« tĂ« vjetra nĂ« gamĂ«.
Burimi: opennet.ru
