Git 2.36 lähdeohjausjulkaisu

Kolmen kuukauden kehitystyön jälkeen hajautetun lähteen ohjausjärjestelmä Git 2.36 on julkaistu. 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 uuteen versioon, joka valmistettiin 717 kehittäjän osallistuessa, tehtiin 96 muutosta, joista 26 osallistui kehitykseen ensimmäistä kertaa. Tärkeimmät innovaatiot:

  • "git log"- ja "git show" -komennot ovat lisänneet "--remerge-diff"-vaihtoehdon, jonka avulla voit näyttää erot yhdistämisen kokonaistuloksen ja todellisen tiedon välillä, jotka näkyvät commitissa "merge"-käsittelyn jälkeen. ” -komento, jonka avulla voit selkeästi arvioida sulautumisristiriitojen ratkaisemisen seurauksena tehdyt muutokset. Normaali "git show" -komento sisentää eri konfliktien ratkaisuja, mikä tekee muutoksista vaikeasti ymmärrettäviä. Esimerkiksi kuvakaappauksessa rivin alapuolella oleva "+/-" ilman sisennystä näyttää viimeisen ristiriidan ratkaisun, joka liittyy sha1:n uudelleennimeämiseen oidiksi ensimmäisen haaran kommentissa, ja "+/-" sisennyksen kanssa näyttää alkuperäisen dwim_ref()-funktion toiseen haaraan lisäargumentin esiintymisen aiheuttaman ristiriidan ratkaisu.
    Git 2.36 lähdeohjausjulkaisu

    Käytettäessä "--remerge-diff" -vaihtoehtoa ristiriitojen ratkaisujen eroja ei eroteta kunkin päähaaran osalta, vaan näytetään yleiset erot yhdistämisristiriitoja sisältävän tiedoston ja ristiriidat ratkaistujen tiedoston välillä.

    Git 2.36 lähdeohjausjulkaisu

  • Lisää joustavuutta levyvälimuistien huuhtelun määrittämisessä fsync()-funktion kutsun kautta. Aiemmin saatavilla oleva core.fsyncObjectFiles-parametri on jaettu kahdeksi konfiguraatiomuuttujaksi core.fsync ja core.fsyncMethod, mikä mahdollistaa fsyncin soveltamisen objektitiedostojen (.git/objects) lisäksi myös muihin git-rakenteisiin, kuten linkkeihin ( .git /refs), reflog- ja pakkaustiedostot.

    core.fsync-muuttujan avulla voit määrittää luettelon sisäisistä Git-rakenteista, joille fsynciä kutsutaan lisäksi kirjoitustoiminnon jälkeen. core.fsyncMethod-muuttujan avulla voit valita menetelmän välimuistin tyhjentämiseksi. Voit esimerkiksi valita fsyncin käyttääksesi samannimistä järjestelmäkutsua tai määrittää vain kirjoitustavan käyttääksesi sivuvälimuistin takaisinkirjoitusta.

  • Tietovaraston omistajan vahvistusta on tehostettu suojatakseen haavoittuvuuksilta, jotka manipuloivat muiden käyttäjien .git-hakemistojen korvaamista jaetuilla osioilla. Git-komentojen suorittaminen on nyt sallittua vain niiden omissa ".git"-hakemistoissa. Jos arkiston sisältävä hakemisto kuuluu toiselle käyttäjälle, näyttöön tulee oletusarvoisesti virheilmoitus. Tämä toiminta voidaan poistaa käytöstä safe.directory-asetuksella.
  • Git-objektien lähdesisällön tulostamiseen tarkoitettu komento "git cat-file" on täydennetty "--batch-command" -vaihtoehdolla, joka täydentää aiemmin saatavilla olevia "--batch" ja "--batch-check". ” komennot, joilla on mahdollisuus valita mukautuvasti tulosteen tyyppi käyttämällä " contents <object>" -komentoa sisällön näyttämiseen tai "info <object>" -komentoa objektin tietojen näyttämiseen. Lisäksi "huuhtele"-komentoa tuetaan tulostuspuskurin tyhjentämiseksi.
  • Kohdepuun sisältöluettelon luomiseen tarkoitettuun "git ls-tree" -komentoon on lisätty vaihtoehto "-oid-only" ("-object-only"), joka on samanlainen kuin "-name-only" ", joka näyttää vain objektitunnisteet yksinkertaistaakseen skriptien kutsua. Toteutettuna on myös "--format" -vaihtoehto, jonka avulla voit määrittää oman tulostusmuodon yhdistämällä tiedot tilasta, tyypistä, nimestä ja koosta.
  • "git bisect run" -komento havaitsee, että skriptille ei asetettu suoritettavan tiedoston lippua ja tässä tapauksessa näytetään virheitä koodilla 126 tai 127 (aiemmin, jos komentosarjaa ei voitu suorittaa, kaikki versiot on merkitty ongelmallisiksi) .
  • Lisätty "git fetch" -komentoon --refetch, joka hakee kaikki objektit ilmoittamatta toiselle osapuolelle jo paikallisessa järjestelmässä olevasta sisällöstä. Tämä toiminta voi olla hyödyllistä vioista toipumisessa, kun paikallisten tietojen eheys on epävarma.
  • "git update-index", "git checkout-index", "git read-tree" ja "git clean" -komennot tukevat nyt osittaisia ​​indeksejä (harva indeksi) suorituskyvyn parantamiseksi ja tilan säästämiseksi arkistoissa, joissa suoritetaan osittaisia ​​toimintoja. (harva kassa).
  • "git clone —filter=… —recurse-submodules" -komennon käyttäytymistä on muutettu, mikä nyt johtaa alimoduulien osittaiseen kloonaukseen (aiemmin tällaisia ​​komentoja suoritettaessa suodatinta käytettiin vain pääsisältöön ja alimoduulit olivat kloonattu kokonaan ottamatta huomioon suodatinta).
  • "git bundle" -komento on lisännyt tuen suodattimien määrittämiseen sisällön valikoivaa sijoittamista varten, kuten osittaisten kloonaustoimintojen tapaan.
  • Lisätty "--recurse-submodules" -vaihtoehto "git branch" -komentoon, jotta alimoduulit kulkevat rekursiivisesti.
  • Userdiff tarjoaa uuden käsittelijän Kotlin-kielelle.

Lähde: opennet.ru

Lisää kommentti