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

Lähettäjä hajautetun lähteen ohjausjärjestelmän vapauttaminen Git 2.22.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 käytetään koko aikaisemman historian implisiittistä tiivistystä jokaisessa sitoumuksessa, ja yksittäiset tagit ja sitoumukset on myös mahdollista varmentaa kehittäjien digitaalisilla allekirjoituksilla.

Edelliseen julkaisuun verrattuna uusi versio sisälsi 745 muutosta, jotka valmisteltiin 74 kehittäjän osallistuessa, joista 18 osallistui kehitykseen ensimmäistä kertaa. Pääasiallinen innovaatioita:

  • Julkaisusta 1.18 lähtien saatavilla oleva uusi commit rebase -tila "git rebase --rebase-merges" korvaa vanhan "--preserve-merges" -vaihtoehdon, joka on nyt vanhentunut. "git rebase" -toimintoa käytetään korvaamaan toimitussarja uudella perustoimituksella, esimerkiksi siirtämään erillinen haara, joka kehittää jotain uutta ominaisuutta päähaaran nykyiseen tilaan, joka sisältää haaran jälkeen lisätyt korjaukset. :

    o - o - o (oma-ominaisuus)

    /

    o - o - o - o - o (mestari)

    o - o - o (oma-ominaisuus)

    /

    o - o - o - o - o (mestari)

    Haararakenteen säilyttämiseksi siirretyssä haarassa voitiin aiemmin käyttää "--preserve-merges" -vaihtoehtoa, joka interaktiivisessa tilassa (git rebase -i --preserve-merges) ajettaessa mahdollisti toimitushistorian muokkaamisen, mutta ei takaanut loppusijoitusrakenteen täydellistä säilymistä. Uuden "--rebase-merges" -tilan avulla voit säilyttää siirrettävän haaran muutosten rakenteen ja samalla tarjota täyden valikoiman interaktiivisia toimintoja, mukaan lukien sitoumusten poistaminen, ryhmittely ja uudelleennimeäminen.

    Esimerkiksi "--rebase-merges" sen avulla lataa sitoumukset uudelleen erillisestä haarasta uudempaan päähaaraan säilyttäen samalla haararakenteen siirretyssä haarassa ja tehdä joitakin muutoksia toimitusmuistiinpanoihin lennossa.

  • Lisätty tuki uuden haaran luomiseen perustuen kahden muun haaran yhdistämiskannan määrittämiseen (yhdistämiskanta, sitoutuminen yhteiseen esi-isään) käyttämällä konstruktioita "git haara uusi A...B" ja "git checkout -b new" A...B", jossa "A ...B" sisältää yhdistämisperusteen määrittämisen kahden määritellyn commit välillä, samalla tavalla kuin "git checkout A...B" siirtää HEAD:n perussitoutukseen ja "ero A. ..B" näyttää muutokset commit "B" ja sama kuin commit "A" "Ancesstor".

    Esimerkiksi työskennellessäsi erillisellä oma-ominaisuushaaralla tätä ominaisuutta voidaan käyttää, kun haluat aloittaa eri haarasta, esimerkiksi samasta paikasta päähaarassa, josta my-feature-haara on kirjattu ulos. Aikaisemmin tämä edellytti muutoslokin manuaalista tarkastelua, mikä oli hankalaa, jos sinulla oli suuri muutoshistoria, ja sitten "git merge-base master my-feature" -toiminnon suorittaminen yhdistämiskannan hajautusarvon laskemiseksi master- ja my-feature-haarojen välillä. ja luodaan uusi haara suhteessa yhteiseen esi-isään "git-haara my-toinen-ominaisuus hash". Git 2.22:ssa voit käyttää syntaksia "git-haara my-other-feature A...B" luodaksesi haaran suhteessa kahden muun haaran yhdistämiskantaan;

  • Lisätty "git branch --show-current" -vaihtoehto näyttämään kassatoiminnon aikana saadun haaran nimen;
  • Lisätty "git checkout —no-overlay — dir" -vaihtoehto, jonka avulla kassatoimintoa suoritettaessa dir-hakemiston sisältö saatetaan muotoon, joka vastaa täysin päähaaran tilaa. Jos esimerkiksi dir-hakemiston paikallisessa kopiossa on tiedosto, joka ei ole päähaarassa, se jätetään oletusarvoisesti "git checkout master - dir" -komentoa suoritettaessa, ja jos "--no-overlay" ” -vaihtoehto on määritetty, se poistetaan;
  • "git diff" -komento käyttää yleistä sovellusliittymää vaihtoehtojen jäsentämiseen, mikä mahdollistaa vaihtoehtojen käsittelyn yhtenäistämisen muiden git-apuohjelmien kanssa. Esimerkiksi "git diff":ssä kaikilla vaihtoehdoilla on nyt antagonistinsa ("--function-context" ja "--no-function-context");
  • Lisätty mahdollisuus suodattaa laajennettuja tageja, jotka on liitetty sitoumuksiin "git log" -tulosteessa ("trailer" - lisätietoliput, kuten Signed-off-by ja Co-authored-by). Tunnisteita on mahdollista suodattaa sekä avaimen että arvon mukaan, esimerkiksi:
    "git log --pretty="%(trailers:key=Arvosteli,arvo vain)";

  • Uusi jäljitysmoottori, Trace2, on lisätty, joka tarjoaa joustavamman ja jäsennellymmän tulostusmuodon. Trace2:n avulla voit kerätä telemetriaa suoritetuista toiminnoista ja suorituskykytietoja yksityiskohtaisempaa analysointia ja virheenkorjausta varten (käsittelijän määrittää käyttäjä, tietoja ei lähetetä ulkoisesti);
  • "Git bisect" -raporttia on tehty luettavammaksi, jossa ongelmalliset sitoumukset näkyvät nyt selkeämmin ja kunkin tiedoston muutosten yhteenvetotilastot näytetään (muutettujen rivien lukumäärän tasolla);
  • Hakemistojen uudelleennimeämisen määrittämisen heuristiikkaa on muokattu uudelleennimeämistunnisteiden väärän asennuksen poistamiseksi. Jos olet epävarma, tällaiset hakemistot on nyt merkitty ristiriitaisiksi;
  • Varoitus näytetään, kun yrität asentaa tunnisteen toiseen tagiin, mikä tapahtuu yleensä vahingossa ja voi johtaa tagin asettamiseen väärään vahvistukseen (esimerkiksi rakenne, kuten "git tag -f -m "päivitetty viesti" my-tag1 my-tag2″ johtaa tunnisteen luomiseen vanhaan tunnisteeseen, kun taas kehittäjä odotti, että uusi tunniste asennetaan vahvistukseen, johon vanha tagi osoitti);
  • Bittikarttavarastojen luonti on käytössä (levypohjainen "saatettavuusbittikarttojen" rakenne), jotka tallentavat tietoja kullekin toimitukselle käytettävissä olevista objektijoukoista ja mahdollistavat perusobjektin olemassaolon nopean määrittämisen. Tämä rakenne lyhentää merkittävästi tiedonhakutoimintojen (git fetch) suoritusaikaa.

Lähde: opennet.ru

Lisää kommentti