Git 2.55

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

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster