Git 2.55

Lähettäjä hajautetun lähdekoodin hallintajärjestelmän julkaisu Git 2.55Keskeisimpiä muutoksia ovat: oletuskoontiversion käyttöönotto Rustilla, toteutus Linux fsmonitor-prosessi, uusi strategia inkrementaalisen MIDX-indeksin uudelleen pakkaamiseen, git history fixup -komento commitin korjaamiseen, objektien saatavuuden bittikarttojen luomisen optimointi, tuki hookien rinnakkaissuoritukselle, git format-rev-komento. Git-koodi jakelija lisensoitu GPLv2+:lla.

Edelliseen julkaisuun verrattuna uusi versio sisältää 505 muutosta, jotka on valmisteltu 100 kehittäjän osallistumisella. Heistä 33 oli uusia Git-kehityksessä.

Tärkeimmät innovaatiot (github.blog, gitlab.com/blogi, gitlab.com/git-scm):

  • Oletuksena mukana Tuki Rust-komponenteille. Rustc-kääntäjä. lisätty rakennusriippuvuuksiin. Jos haluat rakentaa ilman Rustia, voit käyttää NO_RUST=1-lippua make-apuohjelmaa suorittaessasi tai -Drust=disabled-lippua meson configure -komentoa suorittaessasi. Rustin avulla rakentamisen poistaminen käytöstä on tuettu Git 3.0:aan asti, jossa Rust on... mukana Vaadittujen riippuvuuksien joukossa Rust-kieli toteuttaa kerroksen SHA-1- ja SHA-256-hajautuskonfiguraatioiden välistä siirrettävyyttä varten sekä joitakin sisäisiä funktioita, kuten vaihtelevan pituisten kokonaislukujen koodauksen ja dekoodauksen. Merkittävämpiä sisäisiä Git-komponentteja odotetaan kirjoitettavan uudelleen Rustiin tulevaisuudessa.
  • Kokeellisryhmälle "gitin historia"Commit-historian uudelleenkirjoitustyökaluun on lisätty operaatio "git history fixup", jonka avulla voi kirjoittaa commit-historian uudelleen. Fixup-operaation avulla voi siirtää git add -komennon kautta lisätyt muutokset aiempaan commit-tiedostoon ja kirjoittaa automaattisesti kaikki myöhemmät commit-tiedostot uudelleen samalla tavalla kuin komennon git commit --fixup= suorittaminen. ja ajamalla git rebase --autosquash ~.
  • Alustalle Linux taustaprosessi toteutettu fsmonitori, joka seuraa tiedostojärjestelmän muutoksia mekanismin avulla ilmoita ja sen avulla voit välttää koko työhakemiston läpikäymisen suoritettaessa komentoja, kuten git status. Se voidaan ottaa käyttöön "ydin.fsmonitori'.
  • git repack -komennolla on nyt uusi --write-midx=incremental-optio. Tämä asetus toteuttaa uuden strategian metatietojen päivittämiseen inkrementaalisessa MIDX-indeksissä (monipakkausindeksi), mikä poistaa tarpeen pakata koko indeksiä uudelleen. Inkrementaalinen monipakkausindeksi käyttää kerroksia yhden suuren indeksin sijaan, joka sisältää tietoa objektien jakautumisesta pakkaustiedostoissa. Jokainen kerros kattaa tietyn määrän pakkaustiedostoja ja tallennetaan erilliseen bittikarttatiedostoon. Tämä rakenne mahdollistaa uusien pakkaustiedostojen objektien tietojen lisäämisen indeksiin liittämällä indeksiin uusia kerroksia ilman olemassa olevien kerroksien uudelleenrakentamista. git repack --write-midx=incremental-komento lisää uuden kerroksen inkrementaaliseen MIDX-indeksiin, joka kattaa äskettäin luodut pakkaustiedostot. Yhdessä --geometric-tietovaraston pakkaustilan kanssa uusi komento mahdollistaa uusien objektien yhdistämisen useista pakkaustiedostoista yhdeksi suuremmaksi pakkaustiedostoksi ja tarvittaessa useiden vierekkäisten inkrementaalisen MIDX-indeksin kerroksien pakkaamisen ja yhdistämisen. Tämä strategia sallii git repack -toiminnon kirjoittaa uudelleen vain ylimmät kerrokset, jolloin vanhemmat ja suuremmat kerrokset jäävät ennalleen, ja estää kerrosketjun hallitsemattoman kasvun pitämällä kerrosten kokonaismäärän verrannollisena objektien kokonaismäärän logaritmiin.
  • Objektien saatavuusbittikarttojen luomista on merkittävästi optimoitu uudella objektipuun läpikäymisalgoritmilla, joka poistaa tarpeettoman rekursion, objektien sijaintien välimuistiin tallennuksen, bittikarttojen lajittelun ennen niiden yhdistämistä XOR-operaatiolla ja koodin uudelleenmuokkauksen pseudoyhdistämisbittikarttojen luomiseksi (näennäisyhdistäminen). Testiarkistossa optimoinnit lyhensivät bittikarttakuvien luontiaikaa 612 sekunnista 294 sekuntiin.
  • Kyky suorittaa itsenäisiä tehtäviä rinnakkain on toteutettu koukut Konfiguraatiotiedostoissa. Hookkeja, jotka vaikuttavat jaettuun tilaan tai ottavat sen huomioon, kuten sellaisia, jotka muuttavat commit-muistiinpanoja tai tarkastavat indeksejä ja työpuuta, ei voida suorittaa rinnakkain. Lintterin tarkistukseen ja yksikkötestaukseen tarkoitettuja hookkeja voidaan kuitenkin suorittaa rinnakkain. Rinnakkaisen suorituksen sallivat hookit konfiguroidaan käyttämällä hook.hook_name.parallel = true -parametria. Samanaikaisesti suoritettavien töiden määrä määräytyy hook.jobs-komennon perusteella. .jobs tai komentorivivalitsinta -j.
  • git pack-objects --path-walk -komennon avulla voit nyt määrittää suodattimia, kuten blob:none ja blob:limit=. , puu:0, objekti:tyyppi= harva: ja yhdistä:. Testissä blobien hylkääminen --path-walk-komennon suorituksen aikana pienensi luodun pakkaustiedoston kokoa 16 %.
  • Lisätty git format-rev -komento muotoilumuutoksille ja commit-listoissa mainituille tai mielivaltaisessa tekstissä esiintyville objektien nimille (tätä voidaan käyttää esimerkiksi commit-muistiinpanojen käsittelyyn tarkoitetuissa hookeissa).

git viimeksi muokattu | git format-rev --stdin-mode=text --format=%an

Junio ​​​​C Hamano builtin/commit.c

  • Useimpien palvelimen lähettämien tiedotusviestien ja virhetekstien pääteohjaussekvenssien koodinvaihto on oletusarvoisesti käytössä. Haitallisen palvelimen käytön yhteydessä tällaisia ​​koodinvaihtosekvenssejä voidaan käyttää tulosteen piilottamiseen tai muokkaamiseen esimerkiksi käyttämällä koodinvaihtosekvenssejä kohdistimen siirtämiseen ja tekstin tyhjentämiseen. Tuki elementtien korostamiseen tarkoitetuille koodinvaihtosekvensseille on säilytetty.
  • git checkout -m -komento tallentaa nyt automaattisesti ristiriitaiset paikalliset muutokset varastoalueelle ilman, että sinun tarvitsee ratkaista ristiriitaa välittömästi.
  • git push -komento tukee nyt haaran lähettämistä useille ulkoisille Git-palvelimille yhdellä komennolla. Jos esimerkiksi haluat lähettää päähaaran paitsi ensisijaiselle palvelimelle myös peileille, voit luoda julkaisuryhmän, joka koostuu github-, gitlab- ja peilipalvelimista:

git config remotes.publish "github gitlab peili"
git push julkaise pää

  • git log --graph -komentoon on lisätty --graph-lane-limit= -optio. rajoittaa pystysuorien palkkien määrää haarojen visualisoinnissa, mikä antaa sinun jättää näytölle tilaa commit-tiedoille tietovarastoissa, joissa on paljon haaroja.

...
* | | | | 619931f561 Yhdistä haara 'dl/posix-unused-warning-clang'
|\ \ \ \ \
| * | | | ~ cf48887610 compat/posix.h: yksinkertaista GIT_GNUC_PREREQ()-vertailua
| * | | | ~ ffd45926dc compat/posix.h: siivoa GIT_GNUC_PREREQ():n ja UNUSED:n
|\ \ \ \ \~
| * | | | ~3f5203eeb4 ls-tiedostot: suodata pathspecific ennen lstat-arvoa

  • --max-count-oldest= -optio on lisätty git log- ja git rev-list -komentoihin. , jonka avulla voit valita N vanhinta committia tietyltä alueelta.

Lähde: linux.org.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster