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

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

  • Lisätty tuki konfigurointimakroille, joiden avulla voit vaihtaa nopeasti eri asetusjoukkojen välillä ilman, että tarvitset yksityiskohtaisesti niihin liittyviä vaihtoehtoja. Makrojen avulla ei tarvitse muistaa, mitä asetuksia on muutettava, jotta tämä tai toinen toiminto aktivoituu. Jos esimerkiksi suuri arkisto on hidas, sinun kannattaa vaihtaa uuteen indeksointimoottoriin, ottaa käyttöön polun etuliitepakkaus ja ottaa käyttöön jäljittämättömän tiedoston välimuisti asettamalla index.version arvoksi 4 ja ottamalla käyttöön core.untrackedCache. Makron avulla voit olla tuhlaamatta aikaa oikean ratkaisun etsimiseen dokumentaatiosta, vaan aktivoida välittömästi asetukset optimoinnilla arkistoihin, joissa on suuri määrä tiedostoja:

    git config feature.manyFiles true

  • Oletuksena käytössä on objektien tallennus commit-graafin (commit-graph) muodossa, jossa indeksointiin ei käytetä lineaarista listaa objektien tiivisteistä, joilla on linkkejä muihin objekteihin, vaan graafin muotoista rakennetta. . Jos aiemmin tietyn korjauksen sisältävien julkaisujen määrittämiseksi oli tarpeen ladata jokainen objekti levyltä linkkien etsimiseksi, niin kaavion muodossa tallennettuna voit määrittää välittömästi kaikki tarvittavat linkit. Siirtyminen tallennustilaan commit-graafin muodossa Linux-ytimen ja Git-arkistoissa antoi meille mahdollisuuden saavuttaa lähes kaksinkertaisen lisäyksen haarojen kanssa suoritettavien toimintojen suorituskyvyssä. Jos haluat ottaa uuden tallennustavan käyttöön Git 2.24 -päivityksen jälkeen, sinun on suoritettava komento "git gc".

    commit-graafiin liittyvistä muutoksista toteamme myös, että toiminnan edistymisilmaisimen käyttöönotto commit-graafiin liittyvissä komennoissa ("git commit-graph write", "git commit-graph verify" jne.) on tuotu yhteiseen muotoon muiden komentojen kanssa. .). Edistymisen ilmaisin näkyy nyt vain päätelaitteen oletusarvoisesti (muuta toimintaa käyttämällä "-[no-]progress" -vaihtoehtoa). Lisäksi on lisätty uusi konfiguraatioparametri fetch.writeCommitGraph, joka mahdollistaa tiedoston automaattisen päivityksen commit-graafilla "git fetch" -toimintojen aikana (kaikki ulkoisista arkistoista haetut toimitukset menevät välittömästi commit-graafiin ilman tarvetta suorita auto-gc erikseen);

  • Lisätty komento muutoshistorian korvaamiseksi - "git filter-repo", joka on yksinkertaisempi vaihtoehto komennolle"git filter-haara» suorittaa arkiston muutoshistorian toimintoja (esimerkiksi tiedoston poistaminen arkistosta tai muutoshistorian hakeminen tiettyyn hakemistoon). Tehokkuuden parantamiseksi järjestetyn commit-by-com-jäsentämisen sijaan git filter-repo suorittaa toimintoja historian esitykselle jatkuvan virran muodossa.

    Historian suodatus suoritetaan "-path-{glob,regex}"-vaihtoehdolla, jonka avulla voit käyttää sekä yksinkertaisia ​​maskeja että säännöllisiä lausekkeita. On myös vaihtoehtoja suorittaa haku ja korvata tai puhdistaa binääriobjekteja, jotka ovat suurempia kuin määritetty koko. Jokainen uudelleenkirjoitettu toimitus toimitetaan uudella SHA-1 hajautustunnisteella ja kaikki viittaukset korvattuihin toimituksiin päivitetään uuden tunnisteen mukaisesti.

    Jos haluat näyttää yhteenvedon arkiston tilastoista (objektien määrä tyypin mukaan, suurimmat tiedostot ja hakemistot, mitkä laajennukset vaativat enemmän levytilaa jne.), "-analyse" -vaihtoehto tarjotaan. Toiminnan laajentamiseksi Pythonissa on mahdollista liittää mielivaltaisia ​​takaisinsoittokäsittelijöitä, joiden kautta voidaan sekä luoda uusia alikomentoja että käsitellä erilaisia ​​tapahtumia (esim. uusia tiedostotyyppejä);

  • Lisätty "--end-of-options" -vaihtoehto erottamaan asetukset linkkien nimistä, jotka voivat alkaa "-"-merkillä ja joita voidaan käsitellä optioina ("git log --end-of-options -super-dangerous-option" ). Jos arkielämässä sellaiset nimet voidaan välttää muodossa "git log 'refs/heads/—super-dangerous-option'", skripteillä voi olla ongelmia nimiavaruuden määrittämisessä. Yleisesti hyväksytty erotin " - " ei sovellu tässä tapauksessa, koska sitä käytetään jo linkkien nimien erottamiseen tiedostoista (esim. "git log -op-options -super-dangerous-option ^master - polku/to /tiedosto");
  • Lisätty "--strategy" ja "--strategy-option" vaihtoehdot "git rebase --rebase-merges" valitaksesi sulautumisstrategiat;
  • Lisätty uusi ".git/hooks/pre-merge-commit" -käsittelijä, joka kutsutaan yhdistämisen jälkeen, mutta ennen tuloksena olevan vahvistuksen kirjoittamista.
  • Tuki konfiguraatiomuuttujien täydentämiselle suhteessa tiettyjen komentojen asetuksiin on lisätty komentojen viimeistelymoottoriin.
    Jos sinun on esimerkiksi kirjoitettava "git -c core.autocrlf=false add path/to/my/file", mutta et muista "core.autocrlf"-muuttujan tarkkaa nimeä, voit painaa sarkainta ja saada vihje.

Lisäksi Git-kehittäjät lisätty hankkeeseen osallistujan käytännesäännöt, jotka määrittelevät konfliktitilanteiden ratkaisemisen perusperiaatteet. Asiakirja perustuu suosituksiin "Avustajan liitto", jota käytetään monissa avoimen lähdekoodin projekteissa, mukaan lukien Linux-ydin, Eclipse, Freedesktop, GitLab, Ruby ja Kubernetes. Asiakirja määrittelee yhtäläiset mahdollisuudet kaikille osallistujille heidän maailmankatsomuksestaan, iästään, sukupuolestaan, uskonnollisista mieltymyksistään, koulutustasostaan, sosiaalisesta asemastaan ​​ja kansallisuudestaan ​​riippumatta. Yhteisö toivottaa tervetulleeksi ystävällisen kommunikoinnin, ymmärryksen, empatian muiden osallistujien ongelmiin, rakentavan kritiikin hyväksymisen ja koko yhteisön kannalta parhaiden päätösten tekemisen. Trollaus, loukkaava viestintä, nöyryytyksen yritykset, häirintä, yksityisyyden loukkaukset, henkilötietojen paljastaminen ja muut toimet, joita voidaan pitää ammattiviestinnän kannalta sopimattomina, eivät ole sallittuja.

Lähde: opennet.ru

Lisää kommentti