
Presented lëshimi i sistemit të shpërndarë të menaxhimit të kodit burimor Git 2.55. Ndër ndryshimet kryesore: përfshirja e default në ndërtimin me Rust, implementimi për Linux i procesit fsmonitor, një strategji e re për ripaketimin e indeksit inkremental MIDX, komanda git history fixup për korrigjimin e komiteteve, optimizimi i gjenerimit të hartave të disponueshmërisë së objekteve, mbështetje për ekzekutimin paralel të hooks, komanda git format-rev. Kodi Git shpërndahet në përputhje me licencën GPLv2+.
Në krahasim me daljen e kaluar, në versionin e ri janë pranuar 505 ndryshime, të përgatitura me pjesëmarrjen e 100 zhvilluesve, 33 prej të cilëve morën pjesë për herë të parë në zhvillimin e Git.
Risi kryesore (github.blog, gitlab.com/blog, gitlab.com/git-scm):
- Më në default është përfshirë mbështetje për komponentët në gjuhën Rust. Kompilatori rustc është shtuar në numrin e varësive për ndërtim. Për ndërtimin pa Rust, mund të përdoret flaga NO_RUST=1 gjatë ekzekutimit të utilitarit make ose -Drust=disabled gjatë kryerjes së 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ë është aktivizuar në numrin e varësive të detyrueshme. Në gjuhën Rust është implementuar një shtresë për portabilitetin midis konfigurimeve me hash SHA-1 dhe SHA-256, si dhe disa funksione të brendshme, të tilla si kodimi dhe dekodimi i vlerave të numrave me gjatësi variable. Në të ardhmen, pritet një ripunim në Rust i disa komponentëve të brendshëm më të rëndësishëm të Git.
- Në ekipin eksperimental "git history", i cili ofron mundësi për riparimin e historisë së ndryshimeve, është shtuar operacioni "git history fixup" për korrigjimin e komiteteve. Operacioni fixup lejon kalimin e ndryshimeve të shtuara përmes git add në një komitet më herët dhe automatikisht shkruan përsëri të gjitha komitetet e mëpasshme në përputhje me ekzekutimin e komandës git commit --fixup= dhe fillimin e git rebase --autosquash ~.
- Për platformën Linux është realizuar një proces në sfond fsmonitor, i cili ndjek ndryshimet në sistemin e dosjeve përmes mekanizmit inotify dhe lejon të shmangni shqyrtimin e të gjithë katalogut të punës kur ekzekutoni komanda të tilla si git status. Aktivizimi bëhet përmes cilësimit "core.fsmonitor».
- EkipĂ«s git repack i Ă«shtĂ« shtuar modeli âwrite-midx=incremental, i cili realizon njĂ« strategji tĂ« re pĂ«r pĂ«rditĂ«simin e tĂ« dhĂ«nave nĂ« indeksi MIDX-inkremmental (indeksi i shumĂ«-pakove), qĂ« lejon tĂ« shmanget ripakimi i tĂ«rĂ« indeksit. NĂ« indeksin incrementale tĂ« shumĂ«-pakove, nĂ« vend tĂ« njĂ« indeksi tĂ« madh qĂ« pĂ«rmban informacionin pĂ«r shpĂ«rndarjen e objekteve nĂ« skedarĂ«t pack, pĂ«rdoret ndarja nĂ« shtresa â secila shtresĂ« pĂ«rfshin njĂ« numĂ«r tĂ« caktuar skedarĂ«sh pack dhe ruhen nĂ« njĂ« skedar bitmap tĂ« veçantĂ«. Kjo strukturĂ« lejon shtimin e tĂ« dhĂ«nave pĂ«r objekte nĂ« skedarĂ« pack tĂ« rinj, duke iu bashkuar indeksit shtresa tĂ« reja pa rindĂ«rtimin e shtresave ekzistuese. Komanda git repack âwrite-midx=incremental lejon shtimin e njĂ« shtrese tĂ« re nĂ« indeksin MIDX-incremental qĂ« mbulon skedarĂ«t pack qĂ« janĂ« krijuar sĂ« fundmi. NĂ« kombinim me modalitetin e paketimit tĂ« depove âgeometric, komanda e re ofron mundĂ«sinĂ« e bashkimit tĂ« objekteve 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 qĂ« gjatĂ« ekzekutimit git repack tĂ« ripakohen vetĂ«m shtresat e sipĂ«rme, duke lĂ«nĂ« tĂ« paprekura shtresat e mĂ«dha tĂ« vjetra, si dhe tĂ« shmangĂ« rritjen e pakontrolluar tĂ« zinxhirit tĂ« shtresave, duke mbajtur numrin total tĂ« shtresave nĂ« njĂ« nivel tĂ« proporcioni me logarifmin e numrit total tĂ« objekteve.
- Generimi i hartave bitore të disponueshmërisë së objekteve është optimizuar dukshëm falë një algoritmi të ri për kalimin e pemës së objekteve, duke përjashtuar rikursionin e kota, duke ruajtur pozitat e objekteve, duke sortuar hartat bitore para bashkimit me operacionin XOR dhe duke rishkruar kodin për të krijuar hartat bitore të pseudobashkimit (pseudo-merge). Në depo testuese, optimizimet lejuan reduktimin e kohës së gjenerimit të hartave bitore nga 612 në 294 sekonda.
- ĂshtĂ« implemented mundĂ«sia e ekzekutimit paralel tĂ« pavarur hukut nĂ« skedat e konfigurimit. Huket qĂ« ndikojnĂ« nĂ« gjendjen e pĂ«rbashkĂ«t ose i marrin parasysh ato, siç janĂ« ato qĂ« ndryshojnĂ« shĂ«nimet e komiteteve ose inspektojnĂ« indeksin dhe shkallĂ«n e punĂ«s, nuk mund tĂ« ekzekutohen paralelisht. MegjithatĂ«, Ă«shtĂ« e mundur tĂ« ekzekutohen paralelisht hoek pĂ«r verifikimin me linters dhe realizimin e testeve unit. Huket qĂ« lejojnĂ« ekzekutimin paralel konfigurohen pĂ«rmes parametrave hook.emri_hokut.parallel = true. Numri i punĂ«ve qĂ« ekzekutohen nĂ« tĂ« njĂ«jtĂ«n kohĂ« pĂ«rcaktohet pĂ«rmes konfigurations hook.jobs, hook.<event>.jobs ose opsionit tĂ« linjĂ«s sĂ« komandave -j.
- NĂ« komandĂ«n git pack-objects âpath-walk Ă«shtĂ« realizuar mundĂ«sia e caktimit tĂ« filtrave, siç janĂ« blob:none, blob:limit=<n>, tree:0, object:type=<type>, sparse:<oid> dhe combine:. NĂ« testin e kryer, heqja e blob-Ă«ve gjatĂ« ekzekutimit âpath-walk arriti tĂ« reduktonte madhĂ«sinĂ« e skedarit pack tĂ« formuar me 16%.
- ĂshtĂ« shtuar komanda git format-rev pĂ«r formatimin e rishikimeve dhe emrave tĂ« objekteve tĂ« pĂ«rmendura nĂ« listat e komiteteve ose qĂ« shfaqen nĂ« tekst tĂ« rastĂ«sishĂ«m (p.sh., mund tĂ« pĂ«rdoret nĂ« hoek 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
- TĂ« gjitha sekuencat e shumicĂ«s sĂ« kontrollit tĂ« terminalit janĂ« aktivizuar si kryesore nĂ« mesazhet informative dhe tekstin e gabimeve tĂ« dĂ«rguara nga serveri. Kur lidhen me njĂ« server tĂ« dĂ«mshĂ«m, kĂ«to sekuenca mund tĂ« pĂ«rdoren pĂ«r tĂ« fshehur ose modifikuar dalje, p.sh., pĂ«rmes sekvencave pĂ«r tĂ« lĂ«vizur kursorin dhe pastrimin e tekstin. ĂshtĂ« ruajtur mbĂ«shtetje pĂ«r sekuencat e azhurnuara pĂ«r tĂ« theksuar elementĂ«t me ngjyrĂ«.
- Komanda git checkout -m tani automatikisht ruan ndryshimet lokale konfliktuese në zonën stash pa pasur nevojë të zgjidhni menjëherë konfliktin.
- Tek komandën git push është shtuar mundësia për të dërguar një degë në disa servera të jashtëm Git me një komandë. Për shembull, 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 serverat github, gitlab dhe mirror:
git config remotes.publish "github gitlab mirror"
git push publish main
- Tek komandĂ«n git log âgraph Ă«shtĂ« shtuar opsioni âgraph-lane-limit=<N> pĂ«r tĂ« kufizuar numrin e shiritave vertical gjatĂ« vizualizimit tĂ« degĂ«ve, qĂ« lejon tĂ« mbetet hapĂ«sirĂ« nĂ« ekran pĂ«r tĂ« dhĂ«nat rreth komiteteve nĂ« repositorĂ«t me numra tĂ« mĂ«dhenj 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 zgjedhjen e N komiteteve mĂ« tĂ« vjetra nĂ« interval.
Burimi: linux.org.ru
