Git 2.35 allikajuhtimise väljalase

Pärast kahekuulist arendustööd on välja antud hajutatud allika juhtimissüsteem Git 2.35. Git on üks populaarsemaid, usaldusväärsemaid ja suure jõudlusega versioonikontrollisüsteeme, mis pakub paindlikke mittelineaarseid arendustööriistu, mis põhinevad hargnemisel ja ühendamisel. Tagamaks ajaloo terviklikkust ja vastupanuvõimet tagasiulatuvatele muudatustele, kasutatakse iga commit puhul kogu eelneva ajaloo kaudset räsimist, samuti on võimalik üksikuid silte ja kohustusi sertifitseerida arendajate digiallkirjadega.

Võrreldes eelmise versiooniga, sisaldas uus versioon 494 muudatust, mis valmistati ette 93 arendaja osalusel, millest 35 osales arenduses esmakordselt. Peamised uuendused:

  • Laienenud on SSH-võtmete kasutamise võimalused Git-objektide digitaalseks allkirjastamiseks. Mitme võtme kehtivusaja piiramiseks on lisatud OpenSSH direktiivide “kehtiv-enne” ja “kehtib-pärast” tugi, millega saab tagada korrektse töö signatuuridega pärast võtme pööramist mõne arendaja poolt. Enne seda oli probleem allkirjade eraldamisega vana ja uue võtmega - vana võtme kustutamisel on sellega tehtud allkirju võimatu kontrollida ja kui jätate selle, siis jääb võimalus luua uued allkirjad vana võtmega, mis on juba asendatud teise võtmega. Kasutades valikuid kehtiv enne ja kehtivusaeg, saate eraldada võtmete ulatuse allkirja loomise aja alusel.
  • Seadistusega merge.conflictStyle, mis võimaldab valida liitmise ajal konfliktide kohta teabe kuvamise režiimi, on ilmunud tugi režiimile “zdiff3”, mis viib kõik konflikti alguses või lõpus määratud standardread konfliktist välja. ala, mis võimaldab kompaktsemalt esitada teavet.
  • Käsule “git stash” on lisatud režiim “--stage”, mis võimaldab peita ainult indeksisse lisatud muudatused, näiteks olukorras, kus on vaja mõnda keerulist muudatust ajutiselt edasi lükata, et lisa juba valmis olev ja tegele mõne aja pärast ülejäänuga. Režiim sarnaneb käsuga "git commit", kirjutades ainult indeksisse tehtud muudatused, kuid selle asemel, et luua uus commit "git stash —staged", salvestatakse tulemus stash ajutisele alale. Kui muudatusi on vaja, saab need ennistada käsuga „git stash pop”.
  • Käsule "git log" on lisatud uus vormingu spetsifikaator "--format=%(describe)", mis võimaldab kombineerida "git log" väljundit käsu "git description" väljundiga. "git description" parameetrid on määratud otse spetsifikaatoris ("-format=%(describe:match= ,välista= )"), kuhu saate lisada ka lühendatud silte ("—format=%(describe:tags= )") ja seadistage objektide tuvastamiseks kuueteistkümnendsüsteemi märkide arv (“—format=%(describe:abbrev= )"). Näiteks selleks, et loetleda viimased 8 kinnitust, mille siltidel ei ole väljalaske kandidaadi silti, ja määrata 8-märgilised identifikaatorid, võite kasutada käsku: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-g643d-b2ab. gb95bd94 bbc056f2.34.1 v642-56-gffb95f8d v7-2.34.1- gdf203c9adeb2980902 v2.34.1-640-g3b41a212
  • Säte user.signingKey toetab nüüd uut tüüpi võtmeid, mis ei ole piiratud tüübiga "ssh-" ja võtme faili täieliku tee määramisega. Alternatiivsed tüübid määratakse eesliide "key::" abil, näiteks ECDSA võtmete jaoks "key::ecdsa-sha2-nistp256".
  • Märkimisväärselt on suurenenud muudatuste loendi genereerimise kiirus režiimis "—histogramm", samuti suvandi "-color-moved-ws" kasutamisel, mis kontrollib tühikute esiletõstmist värvide erinevuses.
  • Käsk "git jump", mida kasutatakse, et anda Vimile teavet täpse hüppe kohta failis soovitud asukohta liitmiskonfliktide sõelumisel, erinevuste vaatamisel või otsingutoimingute tegemisel, annab võimaluse hõlmatud liitmiskonflikte kitsendada. Näiteks, et piirata toiminguid ainult kataloogiga "foo", saate määrata "git jump merge - foo" ja välistada kataloogi "Dokumentatsioon" töötlemisest - "git jump merge - ':^Documentation'"
  • Objektide suurust tähistavate väärtuste puhul on tehtud tööd "size_t" tüübi "size_t" asemel "unsigned long" asemel, mis võimaldas kasutada "puhas" ja "määrdumise" filtreid failide puhul, mis on suuremad kui 4 GB kõigil platvormidel, sealhulgas platvormidel, millel on LLP64 andmemudel , tüüp "unsigned long", milles on piiratud 4 baiti.
  • Käsklusele "git am" on lisatud valik "-empty=(stop|drop|keep)", mis võimaldab postkastist plaastrite parsimisel valida tühjade kirjade käitumise, mis ei sisalda plaastreid. Väärtus "stopp" lõpetab kogu lappimise, "drop" jätab tühja paiga vahele ja "keep" loob tühja paigamise.
  • Lisati osaliste indeksite (hõre indeks) tugi käskudele "git reset", "git diff", "git blame", "git fetch", "git pull" ja "git ls-files", et parandada jõudlust ja säästa ruumi hoidlad , milles tehakse osalisi kloonimise operatsioone (sparse-checkout).
  • Käsk "git sparse-checkout init" on aegunud ja tuleks asendada käsuga "git sparse-checkout set".
  • Lisatud on uue "reftable" taustaprogrammi esialgne juurutamine viidete, näiteks harude ja siltide hoidmiseks hoidlas. Uus taustaprogramm kasutab JGiti projektis kasutatavat plokksalvestust ja on optimeeritud väga suure hulga viidete salvestamiseks. Taustaprogramm pole veel refs-süsteemiga integreeritud ega ole praktiliseks kasutamiseks valmis.
  • Käsu "git grep" värvipalett on kohandatud vastama GNU grep utiliidile.

Allikas: opennet.ru

Lisa kommentaar