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

Saatavilla hajautetun lähteen ohjausjärjestelmän vapauttaminen Git 2.26.0. 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 504 muutosta, jotka valmisteltiin 64 kehittäjän osallistuessa, joista 12 osallistui kehitykseen ensimmäistä kertaa. Pääasiallinen innovaatioita:

  • Oletusarvo on vaihdettu toinen versio Git-viestintäprotokolla, jota käytetään, kun asiakas muodostaa etäyhteyden Git-palvelimeen. Protokollan toinen versio on tunnettu siitä, että se tarjoaa mahdollisuuden suodattaa haaroja ja tunnisteita palvelinpuolella ja palauttaa lyhennetyn linkkiluettelon asiakkaalle. Aikaisemmin mikä tahansa vetokomento lähetti asiakkaalle aina täydellisen luettelon viitteistä koko arkistossa, vaikka asiakas olisi päivittämässä vain yhtä haaraa tai tarkistamassa, että hänen kopionsa arkistosta oli ajan tasalla. Toinen merkittävä innovaatio on mahdollisuus lisätä uusia ominaisuuksia protokollaan, kun uusia toimintoja tulee saataville työkalupakkiin. Asiakaskoodi pysyy yhteensopivana vanhan protokollan kanssa ja voi jatkaa toimintaansa sekä uusien että vanhojen palvelimien kanssa ja palautuu automaattisesti ensimmäiseen versioon, jos palvelin ei tue toista.
  • "-show-scope" -vaihtoehto on lisätty "git config" -komentoon, mikä helpottaa tiettyjen asetusten määrittämispaikan tunnistamista. Gitin avulla voit määrittää asetuksia eri paikoissa: arkistossa (.git/info/config), käyttäjähakemistossa (~/.gitconfig), järjestelmänlaajuisessa asetustiedostossa (/etc/gitconfig) ja komennon kautta. rivivaihtoehdot ja ympäristömuuttujat. Kun suoritetaan "git config", on melko vaikea ymmärtää, missä tarkalleen haluttu asetus on määritelty. Tämän ongelman ratkaisemiseksi oli käytettävissä vaihtoehto "--show-origin", mutta se näyttää vain polun tiedostoon, jossa asetus on määritetty, mikä on hyödyllistä, jos aiot muokata tiedostoa, mutta ei auta, jos täytyy muuttaa arvoa "git config" -toiminnolla käyttämällä vaihtoehtoja "--system", "--global" tai "-local". Uusi vaihtoehto "--show-scope" näyttää muuttujan määrittelykontekstin ja sitä voidaan käyttää yhdessä -show-origin kanssa:

    $ git --list --show-scope --show-origin
    yleinen tiedosto:/home/user/.gitconfig diff.interhunkcontext=1
    yleinen tiedosto:/home/user/.gitconfig push.default=current
    […] paikallinen tiedosto:.git/config branch.master.remote=origin
    paikallinen tiedosto:.git/config branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    globaali diff.statgraphwidth 35
    paikallinen ero.colormoved plain

    $ git config --global --unset diff.statgraphwidth

  • Sidosasetuksissa valtakirjat Maskien käyttö URL-osoitteissa on sallittua. Gitin HTTP-asetukset ja tunnistetiedot voidaan määrittää sekä kaikille yhteyksille (http.extraHeader, credential.helper) että URL-pohjaisille yhteyksille (credential.https://example.com.helper, credential.https: //esimerkki. com.helper). Tähän asti yleismerkit, kuten *.example.com, olivat sallittuja vain HTTP-asetuksissa, mutta niitä ei tuettu tunnistetietojen sidonnassa. Git 2.26:ssa nämä erot on poistettu, ja esimerkiksi sitoaksesi käyttäjänimen kaikkiin aliverkkotunnuksiin voit nyt määrittää:

    [tunniste "https://*.example.com"]

    käyttäjätunnus = ttaylorr

  • Kokeellisen tuen laajentaminen osittaiselle kloonaukselle (osittaiset kloonit) jatkuu, jolloin voit siirtää vain osan tiedoista ja työskennellä arkiston epätäydellisen kopion kanssa. Uusi julkaisu lisää uuden komennon "git sparse-checkout add", jonka avulla voit lisätä yksittäisiä hakemistoja soveltaaksesi "checkout"-toimintoa vain osaan työpuusta sen sijaan, että luetellaan kaikki tällaiset hakemistot kerralla komennolla "git". sparse-checkout set" (voit lisätä yksitellen yksitellen määrittämättä koko luetteloa joka kerta uudelleen).
    Jos haluat esimerkiksi kloonata git/git-arkiston sitomatta blobeja, rajoittaaksesi kassauksen vain työkopion juurihakemistoon ja merkitäksesi erikseen kassan "t"- ja "Documentation"-hakemistoille, voit määrittää:

    $ git klooni --filter=blob:none --sparse [sähköposti suojattu]:git/git.git

    $ cd git
    $ git sparse-checkout init --cone

    $ git harva-checkout lisää t
    ....
    $ git sparse-checkout lisää dokumentaatio
    ....
    $ git harvat kassalistat
    Dokumentointi
    t

  • "Git grep" -komennon suorituskykyä, jota käytetään etsimään sekä arkiston nykyisestä sisällöstä että historiallisista versioista, on parannettu merkittävästi. Haun nopeuttamiseksi oli mahdollista skannata työpuun sisältö useilla säikeillä ("git grep -säikeet"), mutta historiallisten versioiden haku oli yksisäikeinen. Nyt tämä rajoitus on poistettu ottamalla käyttöön mahdollisuus rinnastaa lukutoiminnot objektimuistista. Oletusarvoisesti säikeiden määrä on asetettu yhtä suureksi kuin CPU-ytimien lukumäärä, mikä useimmissa tapauksissa ei nyt vaadi nimenomaista "-threads"-vaihtoehdon asettamista.
  • Lisätty tuki "git worktree" -komennon alikomentojen, polkujen, linkkien ja muiden argumenttien automaattiselle täydennykselle, jonka avulla voit työskennellä useiden arkiston työkopioiden kanssa.
  • Lisätty tuki kirkkaille väreille, joissa on ANSI-pakojaksot. Esimerkiksi korostusvärien asetuksissa “git config –color” tai “git diff –color-moved” voit määrittää “%C(brightblue)” “--format”-vaihtoehdon kautta kirkkaan siniselle.
  • Lisätty uusi versio käsikirjoituksesta fsmonitor-vartija, joka tarjoaa integroinnin mekanismiin Facebook Watchman nopeuttaa tiedostomuutosten seurantaa ja uusien tiedostojen ilmestymistä. Päivityksen jälkeen tarvitaan git vaihda koukku arkistoon.
  • Lisätty optimointeja osittaisten kloonien nopeuttamiseksi bittikarttoja käytettäessä
    (bittikarttakoneisto), jotta vältetään kaikkien objektien täydellinen haku tulostetta suodatettaessa. Nyt suoritetaan blob-tarkistus (—filter=blob:none ja —filter=blob:limit=n) osittaisen kloonauksen aikana
    huomattavasti nopeampi. GitHub julkisti korjaustiedostoja näillä optimoinnilla ja kokeellisella tuella osittaiselle kloonaukselle.

  • "git rebase" -komento on siirretty toiseen taustajärjestelmään käyttämällä oletusarvoista "merge" -mekanismia (käytettiin aiemmin "rebase -i" -komentoon) "patch+apply" sijaan. Taustaohjelmat eroavat toisistaan ​​joissakin pienissä asioissa, esimerkiksi sen jälkeen, kun toimintoa on jatkettu ristiriidan ratkaisemisen jälkeen (git rebase --continue), uusi taustaohjelma tarjoaa toimitusviestin muokkaamisen, kun taas vanha yksinkertaisesti käytti vanhaa viestiä. Voit palata vanhaan toimintaan käyttämällä "--apply"-vaihtoehtoa tai asettamalla "rebase.backend"-määritysmuuttujaksi "apply".
  • Esimerkki .netrc:n kautta määritettyjen todennusparametrien käsittelijästä on pelkistetty muotoon, joka soveltuu käytettäväksi heti valmiina.
  • Lisätty gpg.minTrustLevel-asetus, jolla asetetaan vähimmäisluottamustaso eri elementeille, jotka suorittavat digitaalisen allekirjoituksen vahvistuksen.
  • Lisätty "--pathspec-from-file" vaihtoehto "git rm" ja "git stash".
  • Testipakettien parantamista jatkettiin valmistauduttaessa siirtymään SHA-2-hajautusalgoritmiin SHA-1:n sijaan.

Lähde: opennet.ru

Lisää kommentti