Git 2.50: Suorituskyvyn parannuksia suurille repositorioille ja muulle

git-2.50

Muutama päivä sitten ilmoitettiin Git 2.50 -projektin uuden version julkaisu, yli 600 muutoksen esittely aktiivisen yhteisön vetämänä, johon tällä kertaa kuului 98 kehittäjää, mukaan lukien 35 uutta osallistujaa.

Tämä uusi Git 2.50 -versio erottuu edukseen uusien komentojen (git-diff-pairs) integroinnin, uusien puhdistus-, suodatus- ja ylläpitotoimintojen, rekursiivisen yhdistämismoottorin korvaamisen ORT:llä sekä suorituskyvyn parannusten ja virheenkorjausten ansiosta.

Git 2.50 Tärkeimmät uudet ominaisuudet

Tässä uudessa Git 2.50 -versiossa yksi tärkeimmistä uusista ominaisuuksista on niin kutsuttujen "cruft pack" -kertymien hoidon optimointi, Eli paketteja, jotka sisältävät objekteja, joihin ei pääse käsiksi tai joihin haarat tai tagit eivät viittaa. Perinteisesti Git tallensi nämä objektit yhteen suureen pakettitiedostoon, mikä saattoi aiheuttaa suorituskykyongelmia, kun uudelleen pakattiin repositorioita, joissa oli useita tällaisia ​​kohteita.

Uuden version myötä Git antaa sinun jakaa nämä cruft-paketit useisiin pienempiin tiedostoihin, mikä vähentää levyn käyttöä ja parantaa syöttö-/tulostussuorituskykyä joukkotoiminnoissa. Lisäksi sja anna vaihtoehto –combine-cruft-below-size, joka sallii yhdistää pieniä paketteja yhdeksi joustavammin kuin edellinen –max-cruft-size-asetus, asettamatta rajoitusta yhdistetylle tiedostokoolle. Tämä uusi ominaisuus on erityisen hyödyllinen projekteissa, joissa on orpoja objekteja useissa paketeissa.

Toinen laajamittaisiin arkistoihin suunnattu parannus on kokeellinen tuki asteittainen päivitys MIDX-indeksit , joka Ne tallentavat tietoja objekteista erillisille tasoille bittikarttatiedostojen käyttö, mikä mahdollistaa nopeammat päivitykset uusien committien lisätessä. Tämä parannus on ratkaisevan tärkeä suurille tietovarastoille, jotka vaativat nopeita indeksointioperaatioita ilman, että metatietoja tarvitsee rakentaa kokonaan uudelleen.

Rekursiivisen yhdistämismoottorin täydellinen korvaaminen ORT:llä

Git 2.50 tuo mukanaan merkittävän muutoksen rekursiivisen fuusiomoottorin pysyvä poisto perinteinen. Sen sijaan ORT:n käyttö on vakiintunut, joka on nykyaikaisempi, huollettavampi ja tehokkaampi fuusiomoottori. ORT ei ainoastaan ​​tarjoa tarkempaa konfliktianalyysia, vaan sen avulla voit myös tarkistaa, onko yhdistäminen mahdollista ilman lisäobjektien luomista. Lisäksi merge-tree-komento sisältää nyt –quiet-valitsin hiljaista yhdistämisen tarkistusta varten ilman tietovaraston muokkaamista.

gitt-diff-pairs: ratkaisu skaalautuvuusongelmiin

Koodin tarkistus on epäilemättä yksi modernin yhteistyöhön perustuvan kehityksen tukipilareista, ja versioiden väliset erot tai eroavaisuudet ovat tärkeässä roolissa tässä prosessissa. Git 2.50:n myötä esiteltiin skaalautuvuutta silmällä pitäen suunniteltu ratkaisu: uusi git-diff-pairs-komento.

Perinteisesti kahden version vertailuun käytetään seuraavanlaista komentoa:

git diff HEAD~1 HEAD

Tämä luo täydellisen korjaustiedoston, joka sisältää kaikki muutokset lueteltujen versioiden välillä. Vaikka se on tehokas monissa tapauksissa, se voi olla suorituskykyongelma käsiteltäessä suuria määriä muokattuja tiedostoja.

Siksi git-diff-pairs on erityisesti suunniteltu vastaanottamaan raakaa syötettä suoraan git diff-treen tulosteesta ja luomaan vastaavat korjauspäivitykset tehokkaasti ja tarkasti.

Käyttö on yhtä yksinkertaista kuin:

git diff-tree -r -z -M HEAD~ HEAD | git diff-pairs -z

Tämä komento ottaa annetut blob-parit ja luo tarkan diff-tulosteen, säilyttäen kontekstuaalisen tiedon ja mahdollistaen työn jakamisen pienempiin eriin. Tämä avaa oven rinnakkaiskäsittelylle, parantaa resurssien tehokkuutta ja helpottaa skaalautuvuutta diff-pohjaisissa työkaluissa, kuten GitLabissa.

Uusia ominaisuuksia puhdistukseen, suodatukseen ja huoltoon

Git 2.50 sisältää useita lisätyökaluja, jotka on suunniteltu parantamaan arkiston ylläpitoa:

  • Komento on lisätty git reblog -pudotus, jonka avulla voit poistaa tietyn haaran uudelleenkirjauksen kokonaan, mikä on ihanteellinen työhistorian siivoamiseen, kun sinun ei enää tarvitse ylläpitää aiempia viittauksia.
  • Vaihtoehto -suodattaa cat-file –batch on nyt saatavilla gitissä, minkä ansiosta voit suodattaa tuloksia objektityypin mukaan.

Lisäksi korostetaan useita sisäisiä optimointeja:

  • Parannettu symbolisten linkkien käyttöä, etuliitteiden välimuistia ja redundanttien tarkistusten vähentämistä.
  • Perl-riippuvuuksien poistaminen dokumentaatiosta ja testiskripteistä, niiden korvaaminen shell-funktioilla tai C-toteutuksilla, mikä helpottaa niiden kääntämistä minimalistisilla kokoonpanoilla varustetuissa järjestelmissä.
  • Sisältää ohjaimen käyttäjäerottelu .ini-tiedostojen erojen analysointia varten.
  • Parannettu git send-email -komennon yhteensopivuutta SMTP-palvelimien, kuten Outlookin, kanssa.

Lopuksi, jos olet kiinnostunut tietämään siitä lisää, voit tutustua yksityiskohtiin osoitteessa seuraava linkki.