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

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

  • Osittaisen kloonauksen mahdollisuus lähestyy vakiintumista ja täydellistä valmiutta, jolloin voit siirtää vain osan tiedoista ja työskennellä arkiston epätäydellisen kopion kanssa. Tyypillinen klooni kopioi kaikki tiedot arkistosta, mukaan lukien jokaisen muutoshistorian tiedoston jokaisen version. Erittäin suurissa arkistoissa tietojen kopioiminen lisää merkittävästi liikennettä ja levytilaa, vaikka kehittäjä olisi kiinnostunut vain tiedostojen osajoukosta. Vain osan toimivan lähdepuun hakemisen helpottamiseksi uudessa julkaisussa on kokeellinen "sparse-checkout"-komento ja uusi "--sparse"-vaihtoehto "clone"-komennolle.

    Aikaisemmin valikoiva kloonausprosessi suoritettiin tehtävän kautta suodattimet suodattaaksesi tarpeettoman sisällön ja "-no-checkout" -vaihtoehdon poistaaksesi puuttuvien tiedostojen täyttämisen käytöstä. Tämän jälkeen ennen kassatoiminnon suorittamista oli tarpeen ottaa käyttöön core.sparseCheckout-asetus ja määrittää poissuljettujen polkumallien luettelo .git/info/sparse-checkout-tiedostossa. Jos haluat esimerkiksi kloonata ilman blobbeja ja estää tiedostojen purkamisen syvyyden 2 tai sitä suuremmista alihakemistoista, voit suorittaa:

    git-klooni --filter=blob:none --no-checkout /oma/varasto/täällä repo
    $cd repo
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git kassalle.

    Uusi "git sparse-checkout" -komento yksinkertaistaa huomattavasti työtä ja vähentää keskeneräisen arkiston työn organisointiprosessin seuraaviin komentoihin:

    git clone --filter=blob:none --sparse /oma/varasto/tämä repo
    git sparse-checkout set /path/to/check/out

    Sparse-checkout-komennon avulla voit asettaa luettelon kassapolkuista (set) määrittämättä manuaalisesti .git/info/sparse-checkout, sekä näyttää nykyisen polkuluettelon (luettelo) ja ottaa käyttöön tai poistaa käytöstä osittaiset kassat (enable /Poista käytöstä).

    Jos haluat optimoida työskentelyn erittäin suurten tietovarastojen ja malliluetteloiden kanssa, "git config core.sparseCheckoutCone", joka rajoittaa sallittuja malleja (mitunnaisten .gitignore-mallien sijaan voit määrittää, tuleeko kaikki tietyn alihakemiston polut ja tiedostot kuitata ulos). Jos esimerkiksi suuressa arkistossa on hakemisto “A/B/C” ja kaikki työ on keskittynyt alihakemistoon “C”, niin kun otat sparseCheckoutCone-tilan käyttöön, komento “git sparse-checkout set A/B/ C" poimii "C":n koko sisällön, mutta "A":sta ja "B:stä" se poimii vain ne osat, jotka ovat tarpeen "C:n" kanssa työskentelyyn.

  • Dokumentaatiosta ("git rebase -h") on poistettu kaikki viittaukset "--preserve-merges"-vaihtoehtoon, joka on vanhentunut, ja sitä tulisi käyttää sen sijaan toimitusjoukon siirtämiseen.git rebase --rebase-merges".
  • Postituslistoille lähetettävien korjauspäivitysten luettavuuden parantamiseksi on lisätty vaihtoehto "git format-patch —cover-from-description topic". saatekirje laastarin sarjalle.
  • Toteutettu tuki komennon "git apply -3way" ja "merge.conflictStyle" -asetuksen yhteiskäytölle ("git apply" ottaa nyt huomioon merge.conflictStyle-tiedoston ristiriitakuvaustyylin, kun ristiriita on ratkaistava yrittämisen jälkeen asentaaksesi korjaustiedoston arkistoon).
  • Toiminnoissa, kuten "git diff/grep --show-function/-function-context" käytettyä funktion määritelmäkoodia on laajennettu tukemaan funktiorajojen määrittelyä kieliohjelmissa Eliksiiri.
  • "git add", "git commit", "git reset" ja muihin komentoihin on lisätty uusi vaihtoehto - "-pathspec-from-file", joka mahdollistaa polkuluettelon lataamisen tiedostosta tai syöttövirrasta , sen sijaan, että luettelet ne komentorivillä.
  • Ongelma uudelleennimeämisen havaitsemisessa hakemistotasolla toimitusten kirjoittamisen yhteydessä on ratkaistu. Määritelmä ei toiminut, jos alihakemiston sisältö siirrettiin arkiston juureen.
  • Uudelleensuunnitellun "git add -i" -komennon ensimmäinen toteutus on ehdotettu, jotta voit lisätä muuttunutta sisältöä interaktiivisesti, kirjoitettuna Perlistä C:ksi. Samanlainen "git add -p" -komennon muokkaus on käynnissä.
  • "git log –graph" -komento on muutettu uudelleen luoden ASCII-kuvan kaaviosta, jossa on arkiston muutoshistoria. Uudelleentyöskentely mahdollisti tulosteen merkittävän parantamisen ja yksinkertaistamisen tarinan rakennetta vääristämättä, mikä esimerkiksi ratkaisi ongelman kuvan ulottuessa pääteviivan leveyden ulkopuolelle.
  • "git log --format=.." -vaihtoehdon avulla voit muuttaa tulostusmuotoa,
    laajennettu tukemalla "l/L"-lippuja näyttämään vain sen osan sähköpostiosoitteesta, joka on merkitty ennen @-symbolia (esimerkiksi hyödyllinen, kun kaikilla kehittäjillä on kaikki sähköpostit samassa verkkotunnuksessa).

  • Lisätty "set-url"-alikomento "git submodule" -komentoon.
  • Testisarjat on päivitetty valmisteltaessa siirtymistä
    hajautusalgoritmi SHA-2 SHA-1:n sijaan.

Lähde: opennet.ru

Lisää kommentti