Git 2.55

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

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster