Hajutatud allika juhtimissüsteemi Git 2.24 väljalase

Saadaval hajutatud allika juhtimissüsteemi vabastamine git 2.24.0. Git on üks populaarsemaid, usaldusväärsemaid ja suure jõudlusega versioonikontrollisüsteeme, mis pakub paindlikke mittelineaarseid arendustööriistu, mis põhinevad harude hargnemisel ja ühendamisel. Ajaloo terviklikkuse ja tagasiulatuvatele muudatustele vastupidavuse tagamiseks kasutatakse igas sissekandes kogu eelneva ajaloo kaudset räsimist, samuti on võimalik kontrollida üksikuid silte ja kohustusi arendajate digiallkirjadega.

Võrreldes eelmise versiooniga, sisaldas uus versioon 544 muudatust, mis valmistati ette 78 arendaja osalusel, millest 21 osales arenduses esmakordselt. Kõik uuendused:

  • Lisatud on konfiguratsioonimakrode tugi, mille kaudu saate kiiresti lülituda erinevate seadistuste komplektide vahel, ilma nendega seotud konkreetsete valikute üksikasjalikult käsitlemata. Makrode abil ei pea meeles pidama, milliseid seadeid tuleb selle või teise funktsiooni aktiveerimiseks muuta. Näiteks kui suur hoidla on aeglane, võiksite lülituda uuele indekseerimismootorile, lubada tee eesliidete tihendamine ja lubada jälgimata faili vahemälu, määrates faili index.version väärtuseks 4 ja lubades core.untrackedCache. Makrod võimaldavad teil mitte raisata aega dokumentatsioonist õige lahenduse otsimisele, vaid aktiveerida kohe sätted suure hulga failidega hoidlate optimeerimisega:

    git config feature.manyFiles tõsi

  • Vaikimisi on sisse lülitatud objektide salvestamine kinnistamisgraafiku (commit-graph) kujul, milles indekseerimiseks ei kasutata mitte lineaarset objektide räsiloendit linkidega teistele objektidele, vaid graafikukujulist struktuuri. . Kui varem oli teatud parandust sisaldavate väljaannete määramiseks vaja linkide otsimiseks laadida iga objekt kettalt, siis graafiku kujul salvestatuna saab kohe kõik vajalikud lingid määrata. Üleminek salvestusele commit graafiku kujul Linuxi kerneli ja Giti hoidlates võimaldas meil saavutada harudega tehtavate toimingute jõudluse peaaegu kahekordse tõusu. Uue salvestusmeetodi lubamiseks pärast versioonile Git 2.24 uuendamist peate käivitama käsu "git gc".

    Commit-graphiga seotud muudatustest märgime ka seda, et commit-graphiga seotud käskudes (“git commit-graph write”, “git commit-graph verify” jne) on toodud operatsiooni edenemise indikaatori juurutamine. ühisele vormile teiste käskudega. .). Edenemisnäidik kuvatakse nüüd vaikimisi ainult terminali jaoks (käitumise muutmiseks kasutage valikut "-[no-]progress"). Lisaks on lisatud uus konfiguratsiooniparameeter fetch.writeCommitGraph, mis võimaldab faili automaatset värskendamist commit graafikuga “git fetch” operatsioonide ajal (kõik välistest hoidlatest alla laaditud sissekanded lähevad koheselt commit-graafikule ilma vajaduseta käivitage auto-gc eraldi);

  • Lisatud on muudatuste ajaloo ülekirjutamise käsk - "git filter-repo", mis on lihtsam alternatiiv käsule "git filter-haru» hoidla muudatuste ajalooga seotud toimingute tegemiseks (näiteks faili kustutamine hoidlast või muudatuste ajaloo hankimine konkreetsesse kataloogi). Tõhususe parandamiseks teostab git filter-repo korrapärase kohustuste kaupa parsimise asemel toiminguid ajaloo esitusega pideva voo kujul.

    Ajaloo filtreerimine toimub suvandi "-path-{glob,regex}" abil, mis võimaldab kasutada nii lihtsaid maske kui ka regulaaravaldisi. Samuti on valikud otsingu tegemiseks ning määratud suurusest suuremate binaarobjektide asendamiseks või puhastamiseks. Igale ümberkirjutatud kohustusele antakse uus SHA-1 räsiidentifikaator ja kõiki viiteid asendatud kohustusele värskendatakse vastavalt uuele identifikaatorile.

    Hoidla statistika kokkuvõtte kuvamiseks (objektide arv tüübi järgi, suurimad failid ja kataloogid, millised laiendused nõuavad rohkem kettaruumi jne), on ette nähtud valik “-analüüs”. Funktsionaalsuse laiendamiseks on Pythonis võimalik ühendada suvalised tagasihelistamise töötlejad, mille kaudu saab nii uusi alamkäske luua kui ka erinevaid sündmusi (näiteks uusi failitüüpe) töödelda;

  • Lisatud suvand "--end-of-options", et eraldada valikud linginimedest, mis võivad alata tähega "-" ja mida käsitletakse valikutena ("git log --end-of-options -super-dangerous-option" ). Kui igapäevaelus saab selliste nimede eest põgeneda kui “git log ‘refs/heads/—super-dangerous-option’”, siis võib skriptidel olla probleeme nimeruumi määratlemisega. Üldtunnustatud eraldaja " - " ei ole antud juhul rakendatav, kuna seda kasutatakse juba linkide nimede eraldamiseks failidest (näiteks "git log —valikute lõpp —üliohtlik valik ^master — path/to /fail");
  • Lisatud valikud "--strategy" ja "--strategy-option" valikule "git rebase --rebase-merges" ühinemisstrateegiad;
  • Lisatud uus ".git/hooks/pre-merge-commit" töötleja, mis kutsutakse välja pärast ühendamise lõpetamist, kuid enne tulemuseks oleva kohustuse kirjutamist;
  • Käskude täitmise mootorile on lisatud tugi konfiguratsioonimuutujate lõpuleviimiseks seoses konkreetsete käskude seadistustega.
    Näiteks kui peate tippima "git -c core.autocrlf=false add path/to/my/file", kuid ei mäleta muutuja core.autocrlf täpset nime, võite vajutada tabeldusklahvi ja hankida vihje.

Lisaks Giti arendajad lisatud projektis osaleja käitumisjuhend, mis määratleb konfliktsituatsioonide lahendamise põhiprintsiibid. Dokument põhineb soovitustel "Kaastöötajate pakt", mida kasutatakse paljudes avatud lähtekoodiga projektides, sealhulgas Linuxi kernel, Eclipse, Freedesktop, GitLab, Ruby ja Kubernetes. Dokumendis määratletakse võrdsed võimalused kõigile osalejatele, olenemata nende maailmavaatest, vanusest, soost, usulistest eelistustest, haridustasemest, sotsiaalsest staatusest ja rahvusest. Kogukond tervitab sõbralikku suhtlemisvormi, mõistmist, empaatiat teiste osalejate probleemide suhtes, konstruktiivse kriitika vastuvõtmist ja kogu kogukonna jaoks parimate otsuste tegemist. Trollimine, solvav suhtlemine, alandamise katsed, ahistamine, privaatsuse rikkumine, isikuandmete avaldamine ja muud tegevused, mida võidakse pidada ametialase suhtluse jaoks sobimatuks, ei ole lubatud.

Allikas: opennet.ru

Lisa kommentaar