Git 2.55

Esitletud jaotatud allika haldamise sĂŒsteemi vĂ€ljaanne Git 2.55. Peamised muudatused: Rust'i kogumise vaikimisi kaasamine, Linuxi faasimonitori protsessi rakendamine, uus strateegia inkrementaalse MIDX-indeksi ĂŒmberpakendamiseks, git history fixup kĂ€su lisamine commit'i parandamiseks, objekti kĂ€ttesaadavuse bitikaartide genereerimise optimeerimine, tugivĂ”imekuse tĂ€ideviimise hookide jaoks, git format-rev kĂ€sk. Git'i kood levitatakse GPLv2+ litsentsi alusel.

Uude versiooni on vÔrreldes eelmise vÀljaande 505 muudatust, mille ettevalmistamisel osales 100 arendajat, kellest 33 osalesid Git'i arendamisel esmakordselt.

Peamised uuendused (github.blog, gitlab.com/blog, gitlab.com/git-scm):

  • Vaikimisi on aktiveeritud Rust'i keele komponentide tugi. Kompilaator rustc on lisatud sĂ”ltuvustest. Rustita kogumise jaoks saab kĂ€ivitamisel kasutada NO_RUST=1 lippu vĂ”i -Drust=disabled meson configure’i tĂ€itmisel. Rust'i kogumise keelamine toetatakse kuni Git 3.0 haruni, kus Rust muutub on lisatud kohustuslikeks sĂ”ltuvusteks. Rust'il rakendatakse kihina ĂŒhisosa SHA-1 ja SHA-256 konfiguratsioonide vahel, samuti mĂ”ned sisemised funktsioonid, nĂ€iteks muutuva pikkusega tĂ€isarvude kodeerimine ja dekodeerimine. Tulevikus oodatakse Rust'i ĂŒmberkujundust tĂ€hendusrikkamatele Git'i sisemistele komponentidele.
  • Eksperimentaalsesse kĂ€sku "git history", mis pakub vĂ”imalusi muutuste ajaloo ĂŒmberkirjutamiseks, lisati "git history fixup" operatsioon, et parandada commit'i. Fixup operatsioon lubab liikuda git add kaudu lisatud muudatused varasemale commit'ile ja automaatselt ĂŒmber kirjutada kĂ”ik jĂ€rgnevad commit'id sarnaselt git commit —fixup=<commit> kĂ€su tĂ€itmisele ja git rebase —autosquash <commit>~ kĂ€ivitamisele.
  • Linuxi platvormile on rakendatud taustaprotsess fsmonitor, mis jĂ€lgib muudatusi failisĂŒsteemis inotify mehhanismi abil ja vĂ”imaldab vĂ€ltida töökausta tĂ€ielikku lĂ€bivaatamist selliste kĂ€skude nagu git status tĂ€itmisel. Aktiveerimine toimub seadistuse „ core.fsmonitorcore.fsmonitor».
  • Git repack komandasse on lisatud reĆŸiim —write-midx=incremental, mis rakendab uut strateegiat metainfot puudutavate andmete uuendamiseks inkrementaalses MIDX-indeksis (multi-pack index), vĂ”imaldades vĂ€ltida kogu indeksi uuesti pakkimist. Inkrementaalses mitme pakendi indeksis kasutatakse ĂŒhe suure indeksi asemel, mis sisaldab objekti jaotuse teavet pakifailide vahel, kihtide eraldamist — iga kiht katab teatud arvu pakifailide ja hoitakse eraldi bitmap-failis. Selline struktuur vĂ”imaldab lisada indeksisse teavet objektide kohta uutest pakifailidest, kinnitades indeksile uusi kihte ilma juba olemasolevate kihtide uuesti ehitamiseta. Git repack —write-midx=incremental kĂ€sk vĂ”imaldab lisada inkrementaalsesse MIDX-indeksisse uue kihi, mis katab hiljuti loodud pakifailid. Koos reposte pakkimise reĆŸiimiga —geometric annab uus kĂ€sk vĂ”imaluse ĂŒhendada uusi objekte mitmest pakifailist ĂŒheks suuremaks pakifailiks ja vajadusel teostada pakkimist ning mitme naaberkihtide ĂŒhendamist inkrementaalses MIDX-indeksis. Selline strateegia vĂ”imaldab git repack'i tĂ€itmisel kirjutada ĂŒmber ainult ĂŒlemisi kihte, jĂ€ttes vanad suured kihid puutumatuks, ja ka vĂ€listada kontrollimatut kihtide ahela suurenemist, hoides kihtide koguarvu tasemel, mis on proportsionaalne objekti koguarvu logaritmiga.
  • Objektide kĂ€tte saamise bitikaartide genereerimine on oluliselt optimeeritud uue objekti, vĂ€ltida ĂŒlemÀÀrast rekurssi, objektide positsioonide vahemĂ€llu salvestamise, bitikaartide sortimise enne nende ĂŒhendamist XOR-operatsiooni kaudu ja pseudo-ĂŒhendust bitikaartide loomise koodi ĂŒmber töötlemisega.pseudo-merge). Testrepos tuli optimeerimine, mis vĂ”imaldas vĂ€hendada bitikaartide genereerimise aega 612 sekundilt 294 sekundile.
  • On rakendatud vĂ”imalus sĂ”ltumatute hookide paralleelseks tĂ€itmiseks. konfiguratsioonifailides. Samal ajal ei saa kĂ€ivituda konksud, mis mĂ”jutavad jagatud olekut vĂ”i arvestavad sellega, nĂ€iteks kommenteerimise mĂ€rkmete muutmine vĂ”i indeksite ja tööruumi kontrollimine. Samuti saab samal ajal kĂ€ivitada konksud linteri kontrollimiseks ja ĂŒksustestide tĂ€itmiseks. Paralleelset tĂ€itmist lubavad konksud seadistatakse parameetriga hook.nimi_huk.parallel = true. Samuti saab samaaegselt kĂ€ivitatavate tööde arvu mÀÀrata seadmise kaudu hook.jobs, hook.<sĂŒndmus>.jobs vĂ”i kĂ€surea valiku -j kaudu.
  • git pack-objects —path-walk meeskonnas on realiseeritud vĂ”imalus mÀÀrata filtreid, nagu blob:none, blob:limit=<n>, tree:0, object:type=<type>, sparse:<oid> ja combine:. Tehtud testis aitas blobide eemaldamine —path-walki tĂ€itmisel vĂ€hendada loodud pack-faili suurust 16%.
  • Lisatud kĂ€sk git format-rev, mis vormindab revisjone ja objekte, mida mainitakse commitide loendites vĂ”i esinevad juhuslikus tekstis (nt. vĂ”ib kasutada konksudes commitide mĂ€rkmete töötlemiseks).

git last-modified | git format-rev —stdin-mode=text —format=%an

Junio C Hamano builtin/commit.c

  • Vaikimisi on sisse lĂŒlitatud enamik terminali juhtimisjĂ€rgsete jĂ€rjestuste varjamine teabe ja vigade sĂ”numites, mida server edastab. Pahatahtlikule serverile pöördumisel vĂ”isid sellised escape-jĂ€rjestused olla kasutusel vĂ€ljundi varjamiseks vĂ”i muutmiseks, nĂ€iteks kursori liigutamiseks ja teksti puhastamiseks escape-jĂ€rjestuste kaudu. VĂ€rvi esitlemise escape-jĂ€rjestuste tugi on sĂ€ilinud.
  • KĂ€sk git checkout -m salvestab nĂŒĂŒd automaatselt konfliktseid kohapealseid muutusi stash-ala, ilma et oleks vaja koheselt konflikti lahendada.
  • git push kĂ€su juurde on lisatud vĂ”imalus edastada haru korraga mitmele vĂ€lisele Git-serverile. NĂ€iteks, et edastada haru main mitte ainult pĂ”hiserverisse, vaid ka peegeldustesse, saab luua publish rĂŒhma serveritest github, gitlab ja mirror:

git config remotes.publish "github gitlab mirror"
git push publish main

  • git log —graph kĂ€sule on lisatud valik —graph-lane-limit=<N> vertikaalsete ribade arvu piiramiseks harude visualiseerimisel, mis sÀÀstab ekraaniruumi commitide andmete jaoks palju harudega repode puhul.



* | | | | 619931f561 Ühendab haru ‘dl/posix-unused-warning-clang’
|\ \ \ \ \
| * | | | ~ cf48887610 compat/posix.h: lihtsustatakse GIT_GNUC_PREREQ() vÔrdlust
| * | | | ~ ffd45926dc compat/posix.h: korrastatakse GIT_GNUC_PREREQ() ja UNUSED
|\ \ \ \ \~
| * | | | ~ 3f5203eeb4 ls-files: filtreeri pathspec enne lstat

  • git log ja git rev-list kĂ€skudele on lisatud valik —max-count-oldest=<N>, mis vĂ”imaldab valida N kĂ”ige vanemat commiti vahemikus.

Allikas: linux.org.ru

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster