Git 2.56 lähdeohjausjulkaisu

Hajautettu lähdekoodinhallintajärjestelmä Git 2.56 on julkaistu. Git on lisensoitu GPLv2+-lisenssillä. Edelliseen julkaisuun verrattuna uusi versio sisältää 748 muutosta, jotka ovat valmistelleet 104 kehittäjää, joista 39 on uusia Git-kehityksessä. Tärkeimmät uudet ominaisuudet (1, 2, 3):

  • Haarojen yhdistämisen yhteydessä esiintyvien ristiriitojen ratkaisemiseksi on lisätty tila "git add --resolved". Tämä tila tarkistaa tiedostoista ristiriitamerkit ja jos merkki havaitaan vähintään yhdessä tiedostossa, palauttaa virheen, ei indeksoi tiedostoja ja näyttää luettelon korjausta vaativista tiedostoista. Toisin kuin komento "git add --update", tämä uusi tila käsittelee vain ristiriitatilassa olevat tiedostot ja jättää huomiotta ristiriitaan liittymättömät muuttuneet tiedostot. Tämä mahdollistaa haarojen yhdistämisen turvallisesti, vaikka työhakemistossa olisi muita keskeneräisiä muokkauksia (komento "git add --update" lisäsi kaikki aiemmin seuratut muuttuneet tiedostot työhakemistosta indeksiin).
  • Suurten repositorioiden kanssa työskentelyä on nopeutettu merkittävästi optimoimalla algoritmia, joka etsii uusimpia yhteisiä committeja haarojen yhdistämisen ja committien vertailun yhteydessä. Prosessi ottaa nyt huomioon vain yhteen haaraan kuuluvat commitit, jolloin skannaus voidaan pysäyttää välittömästi kaikkien mahdollisten yhteisten esi-isien löytämisen jälkeen ilman, että aikaa kuluu muutoshistorian jatkokävelyyn. Yhdessä testatussa repositoriossa hakunopeus kasvoi keskimäärin 20-kertaisesti, kun taas toisessa nopeutuminen oli 70-kertainen. Kun repositoriossa suoritetaan komento "git merge-base --all v4.8 v4.9" ytimen kanssa... Linux Läpikulkuaskeleiden määrä laski 167 tuhannesta 3.8 tuhanteen.
  • "--path-walk"-uudelleenpakkaustilaa on mukautettu palvelinkäyttöön, mikä mahdollistaa kompaktimpien pakkaustiedostojen luomisen ryhmittelemällä objekteja niiden polun mukaan hakemistopuussa (esimerkiksi Fluent UI -arkistossa "--path-walk"-valitsimen käyttö pienensi pakkaustiedoston kokoa 558 megatavusta 164 megatavuun). Uusi versio tukee "--path-walk"-tilan käyttöä yhdessä saavutettavuusbittikarttojen ja delta-saarten kanssa, joita Git-hostingpalvelut käyttävät työn nopeuttamiseen ja haarukoiden eristämiseen pääarkistoista.
  • Suurissa repositorioissa redundantteja laskelmia aiheuttaneita pullonkauloja on poistettu: tarpeettomat tiedostojen tilan tarkistukset reftable-taulukkoon kirjoitettaessa on poistettu; listan uudelleenskannaus on poistettu jokaista uutta pakkaustiedostoa lisättäessä; kertyneiden suurten poistotietueiden reftable-operaatioita on nopeutettu; git diffin suorituskykyä on optimoitu tiedostopolkurajoituksia määritettäessä. Näiden optimointien jälkeen suuren poistomäärän reftable-operaatioita on nopeutettu 65-kertaisesti (13 sekunnista 0.2 sekuntiin), ja ongelmallinen git diff -komento Chromium-repositoriossa, jossa on 500 000 kohdetta indeksissä, kestää nyt 0.07 sekuntia 8 minuutin sijaan.
  • Kokeellista "git history" -komentoa, joka mahdollistaa muutoshistorian uudelleenkirjoittamisen, on päivitetty "git history drop" -toiminnolla, joka poistaa valitun commitin ja liittää sen jälkeläiset automaattisesti pääcommitin.
  • Komento "git branch --delete-merged 'origin/*' 'topic-*'" on lisätty paikallisten haarojen ryhmien turvalliseen poistamiseen, joiden muutokset on jo tallennettu ulkoiseen tietovarastoon. Jokerimerkkejä voidaan käyttää haarojen ja tietovarastojen suodattamiseen. Lippua "--dry-run" voidaan käyttää poistettavien ehdokkaiden analysointiin ilman toiminnon varsinaista suorittamista.
  • Lisätty komento "git refs create|update|delete|rename", joka yhdistää matalan tason toiminnot viitteiden luomiseen, poistamiseen, uudelleennimeämiseen ja päivittämiseen.
  • Komennolla "git bisect run" on nyt "--reset-when-found=[ -optio ]", joka palauttaa repositorion automaattisesti tilaan, jossa se oli ennen haun aloittamista, tai jättää ongelmallisen commitin aktiiviseksi ilman, että "git bisect reset" -komentoa tarvitsee suorittaa erikseen.
  • 'git replay' -komennolla on nyt '--linearize'-lippu, jolla voi käyttää tasaista yhdistämistopologiaa, samalla tavalla kuin 'git rebase --no-rebase-merges', mutta ilman työskentelypuun käyttöä.
  • Komento "git log --follow" seuraa nyt tiedostojen uudelleennimeämisiä epälineaarisissa commit-historioissa, kuten esimerkiksi alihaarojen yhdistämisen yhteydessä. Tiedostopolku tallennetaan nyt erikseen kullekin pääcommitille, joten tulos on riippumaton commit-historian läpikäymisjärjestyksestä.
  • Lisätty mahdollisuus käyttää komentoa "git repack -a --filter=blob:limit=1m --drop-filtered" poistaakseen ulkoisesta arkistosta tarvittaessa ladattuja suuria blob-objekteja, joita ei käytetä nykyisessä indeksissä. Nämä objektit ladataan automaattisesti uudelleen, kun niitä käytetään tulevaisuudessa.
  • Useiden itsenäisten juurien graafeille tarkoitettu komento "git log --graph" lisää nyt sisennyksen erottaakseen toisistaan ​​riippumattomat commitit selkeästi toisistaan.
  • Yleisiä kirjoitusvirheitä, kuten "git push origin/main" määrittäminen "git push origin main":n sijaan tai "git branch --set-upstream-to origin main" määrittäminen "git branch --set-upstream-to=origin/main":n sijaan, havaitaan nyt ja näytetään vihje oikean variantin käytöstä.

Lähde: opennet.ru

Osta luotettava isännöinti sivustoille, joissa on DDoS-suojaus, VPS VDS -palvelimet 🔥 Osta luotettavaa verkkosivustojen hostingia DDoS-suojauksella, VPS VDS -palvelimilla | ProHoster