Hajautetun lähteen ohjausjärjestelmän Git 2.31 julkaisu

Hajautetun lähteen ohjausjärjestelmä Git 2.31 on nyt saatavilla. Git on yksi suosituimmista, luotettavimmista ja tehokkaimmista versionhallintajärjestelmistä, joka tarjoaa joustavia epälineaarisia kehitystyökaluja, jotka perustuvat haarautumiseen ja yhdistämiseen. Historian eheyden ja taannehtivien muutosten kestävyyden varmistamiseksi jokaisessa sitoumuksessa käytetään koko aikaisemman historian implisiittistä hajautusta, ja yksittäiset tagit ja sitoumukset on myös mahdollista varmentaa kehittäjien digitaalisilla allekirjoituksilla.

Edelliseen julkaisuun verrattuna uusi versio sisälsi 679 muutosta, jotka valmisteltiin 85 kehittäjän osallistuessa, joista 23 osallistui kehitykseen ensimmäistä kertaa. Tärkeimmät innovaatiot:

  • Lisätty "git ylläpito" -komento, jonka avulla voit suorittaa säännöllisiä töitä järjestelmissä, jotka eivät tue cronia. Uuden komennon avulla voit esimerkiksi järjestää arkiston pakkausprosessin suoritettavaksi säännöllisin väliajoin, jotta sinun ei tarvitse odottaa, kunnes arkisto lukitaan, kun pakkaus suoritetaan automaattisesti eri komentojen suorittamisen aikana. "git ylläpito" -komennolla voit suorittaa optimointeja ja toimintoja arkiston optimaalisen rakenteen ylläpitämiseksi taustalla estämättä interaktiivista istuntoa - kerran tunnissa tehdään työtä uusien objektien ennakoimiseksi lataamiseksi etävarastosta ja päivittämiseksi tiedosto commit-kaavion kanssa, ja arkiston pakkausprosessi alkaa joka ilta .
  • Lisätty tuki käänteisen indeksin (revindex) ylläpitämiselle levyllä pakkaustiedostoille. Muista, että Git tallentaa kaikki tiedot objektien muodossa, jotka sijaitsevat erillisissä tiedostoissa. Arkiston kanssa työskentelyn tehostamiseksi objektit sijoitetaan lisäksi pakettitiedostoihin, joissa tiedot esitetään toisiaan seuraavien objektien virran muodossa (samanlaista muotoa käytetään siirrettäessä objekteja git fetch and git push -toiminnolla komennot). Jokaiselle pakettitiedostolle luodaan indeksitiedosto (.idx), jonka avulla voit hyvin nopeasti määrittää pakettitiedoston offsetin, johon tietty objekti on tallennettu objektitunnisteen avulla. Git 2.31:ssä käyttöön otetun käänteisen indeksin (.rev) tarkoituksena on optimoida prosessi, jolla määritetään objektin tunniste informaatiosta, joka koskee objektin sijaintia pakkaustiedostossa.

    Aiemmin tällainen muunnos suoritettiin lennossa pakettitiedostoa jäsennettäessä, ja se tallennettiin vain muistiin, mikä ei sallinut vastaavien indeksien uudelleenkäyttöä ja pakotti indeksin luomaan joka kerta. Indeksin rakentaminen perustuu objekti-sijaintiparien muodostamiseen ja sen lajitteluun sijainnin mukaan, mikä voi kestää kauan suurilla pakettitiedostoilla.

    Esimerkiksi suoraa indeksiä käyttävä objektien sisällön näyttämistoiminto oli 62 kertaa nopeampi kuin objektien koon näyttäminen, jonka paikasta objektiin -tietoja ei indeksoitu. Käänteisen indeksin käytön jälkeen nämä toiminnot alkoivat kestää suunnilleen saman ajan. Käänteisten indeksien avulla voit myös nopeuttaa objektin lähetystoimintoja suoritettaessa nouto- ja push-komentoja siirtämällä suoraan valmiita tietoja levyltä. Oletuksena käänteisiä indeksejä ei luoda, vaan niiden luomiseksi sinun on otettava käyttöön "git config pack.writeReverseIndex true" -asetus ja pakattava arkisto "git repack -Ad" -komennolla.

  • Lisätty suorituskyvyn optimoinnit, jotka perustuvat commit-graph-tiedostomuodossa olevaan ulkoasuun, joita käytetään toimitustietojen saatavuuden optimointiin, uusia tietoja toimitusten sukupolvinumerosta, joita voidaan käyttää lisätoimintojen nopeuttamiseen toimitusten kanssa.
  • Lisätty asetukset uusissa arkistoissa oletuksena käytetyn päähaaran nimen uudelleenmäärittelyyn (init.defaultBranch-asetus). Ulkoisiin tietovarastoihin päästäessään git yrittää tarkistaa HEADin osoittaman haaran, ts. jos ulkoinen palvelin käyttää oletusarvoisesti "main"-haaraa, "git clone" -toiminto yrittää kuitata "main" -haaran paikallisesti. Git 2.31 tukee nyt tämän tyyppistä kassaa tyhjille arkistoille. Kun esimerkiksi kloonataan uusi tietovarasto paikallisesti ennen kuin siihen lisätään ensimmäiset korjaustiedostot, paikallinen kopio sisältää nyt oletusarvoisen ylävirran nimen, joka on asetettu ulkoiseen palvelimeen.
  • Lisätty "git rev-list" -komentoon --disk-usage, joka antaa yhteenvedon objektien koosta.
  • Uudelleennimeämisen tunnistusta on optimoitu merkittävästi yhdistämisen taustajärjestelmään tulevaa muutosta ennakoiden.
  • Vanhan PCRE1-säännöllisen lausekekirjaston tuki on lopetettu.
  • Lyhennettyjen linkkien käyttö on mahdollista kieltää väkisin hajautusalgoritmista riippumatta. Kielto otetaan käyttöön antamalla core.abbrev-parametrille arvo "no".
  • Lisätty "--path-format=(absolute|relative)" -vaihtoehto "git rev-parse" -komentoon, jotta voidaan määrittää, tuleeko suhteellisia vai absoluuttisia polkuja tulostaa.
  • Bash-skriptien avulla on helppo lisätä täydennyssääntöjä omille "git"-alikomentoillesi.
  • Lisätty --stdin-vaihtoehto "git bundle" -komentoon lukemaan viittauksia tavallisesta syöttövirrasta.
  • "git log" -komentoon on lisätty uusi vaihtoehto: "--diff-merges=" "
  • Lisätty "--deduplicatecan" -vaihtoehto "git ls-files" -komentoon kaksoistulosten poistamiseksi.
  • Lisätty uusia maskeja useiden toimitusten poissulkemiseksi - " ^!” ja " ^- "
  • Lisätty "--left-only" ja "--right-only" valinnat "git range-diff" -komentoon näyttääkseen vain yhden puolen vertailtavasta alueesta.
  • Lisätty --skip-to=-vaihtoehdot "git diff"- ja "git log"-komentoihin " ja "-roate-to= » ohittaaksesi tai siirtyäksesi aloituspolkujen loppuun.
  • Lisätty "--skip-to="-vaihtoehto "git difftool" -komentoon » jatkaaksesi keskeytettyä istuntoa satunnaisesta polusta.
  • Code of Conduct, joka määrittelee kehittäjien välisten ristiriitatilanteiden ratkaisemisen perusperiaatteet, on päivitetty versioon 2.0 (aiemmin versio 1.4 oli käytössä).

    Lähde: opennet.ru

Lisää kommentti