Publikimi i Git 2.55 me mbështetjen për Rust të aktivizuar si parazgjedhje

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

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