Izdaja za nadzor vira Git 2.35

Po dveh mesecih razvoja je bil izdan porazdeljeni sistem za nadzor vira Git 2.35. Git je eden najbolj priljubljenih, zanesljivih in visoko zmogljivih sistemov za nadzor različic, ki zagotavlja prilagodljiva nelinearna razvojna orodja, ki temeljijo na razvejanju in združevanju. Za zagotovitev celovitosti zgodovine in odpornosti proti retroaktivnim spremembam se v vsaki objavi uporablja implicitno zgoščevanje celotne prejšnje zgodovine, možno je tudi certificirati posamezne oznake in objave z digitalnimi podpisi razvijalcev.

V primerjavi s prejšnjo izdajo je nova različica vsebovala 494 sprememb, pripravljenih s sodelovanjem 93 razvijalcev, od tega jih je 35 pri razvoju sodelovalo prvič. Glavne novosti:

  • Možnosti uporabe ključev SSH za digitalno podpisovanje objektov Git so bile razširjene. Za omejitev obdobja veljavnosti več ključev je dodana podpora za direktivi OpenSSH »veljavno pred« in »veljavno po«, s katerima lahko zagotovite pravilno delo s podpisi, potem ko je ključ obrnil eden od razvijalcev. Pred tem je bila težava z ločevanjem podpisov po starem in novem ključu - če izbrišete stari ključ, bo nemogoče preveriti z njim opravljene podpise, če pa ga pustite, bo še naprej možno ustvarite nove podpise s starim ključem, ki je že nadomeščen z drugim ključem. Z uporabo veljavnega pred in veljavnega pozneje lahko ločite obseg ključev glede na čas, ko je bil podpis ustvarjen.
  • V nastavitvi merge.conflictStyle, ki vam omogoča izbiro načina za prikaz informacij o konfliktih med spajanjem, se je pojavila podpora za način »zdiff3«, ki premakne vse standardne vrstice, določene na začetku ali koncu konflikta, izven konflikta območje, ki omogoča bolj kompakten prikaz informacij.
  • Ukazu »git stash« je bil dodan način »--staged«, ki vam omogoča, da skrijete samo spremembe, dodane v indeks, na primer v primeru, ko morate začasno odložiti nekatere kompleksne spremembe, da bi najprej dodajte že pripravljeno in se čez nekaj časa ukvarjajte z ostalim. Način je podoben ukazu »git commit«, pri čemer se zapišejo samo spremembe, ki so postavljene v indeks, vendar se namesto ustvarjanja nove objave v »git stash —staged« rezultat shrani v začasno območje zaloge. Ko so spremembe potrebne, jih je mogoče razveljaviti z ukazom »git stash pop«.
  • Ukazu "git log" je bil dodan nov specifikator formata, "--format=%(describe)", ki vam omogoča kombiniranje izhoda "git log" z izhodom ukaza "git describe". Parametri za "git describe" so podani neposredno v specifikatorju ("-format=%(describe:match= ,izključi= )"), v katerega lahko vključite tudi skrajšane oznake ("—format=%(describe:tags= )") in konfigurirajte število šestnajstiških znakov za identifikacijo predmetov ("—format=%(describe:abbrev= )"). Če želite na primer navesti zadnjih 8 potrditev, katerih oznake nimajo oznake kandidata za izdajo, in podati 8-mestne identifikatorje, lahko uporabite ukaz: $ 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-643-g2b95d94b056ab v2.34.1- 642-gb56bd 95bbc8f7 v2.34.1-203-gffb9f2980902d v2.34.1-640- gdf3c41adeb212 v2.34.1-639-g36b65715a4132
  • Nastavitev user.signingKey zdaj podpira nove vrste ključev, ki niso omejeni na vrsto »ssh-« in določajo celotno pot datoteke do ključa. Nadomestni tipi so podani s predpono "key::", na primer "key::ecdsa-sha2-nistp256" za ključe ECDSA.
  • Hitrost generiranja seznama sprememb v načinu »—histogram«, pa tudi pri uporabi možnosti »—color-moved-ws«, ki nadzira označevanje presledkov v barvni razliki, se je opazno povečala.
  • Ukaz "git jump", ki se uporablja za zagotavljanje Vimu informacij o natančnem skoku na želeni položaj v datoteki pri razčlenjevanju sporov združevanja, ogledu razlik ali izvajanju operacije iskanja, nudi možnost zožitve zajetih sporov združevanja. Na primer, če želite omejiti operacije samo na imenik "foo", lahko podate "git jump merge - foo", in če želite izključiti imenik "Documentation" iz obdelave - "git jump merge - ':^Documentation'"
  • Opravljeno je bilo delo za standardizacijo uporabe vrste "size_t" namesto "unsigned long" za vrednosti, ki predstavljajo velikost predmetov, kar je omogočilo uporabo filtrov "clean" in "smudge" z datotekami, večjimi od 4 GB na vseh platformah, vključno s platformami s podatkovnim modelom LLP64, tip "unsigned long", v katerem je omejen na 4 bajte.
  • Možnost “-empty=(stop|drop|keep)” je bila dodana ukazu “git am”, ki vam omogoča, da izberete obnašanje za prazna sporočila, ki ne vsebujejo popravkov pri razčlenjevanju popravkov iz nabiralnika. Vrednost »stop« bo zaključila celotno operacijo popravka, »drop« bo preskočila prazen popravek, »keep« pa bo ustvarila prazno potrditev.
  • Dodana podpora za delne indekse (sparse index) ukazom "git reset", "git diff", "git blame", "git fetch", "git pull" in "git ls-files" za izboljšanje zmogljivosti in prihranek prostora v repozitoriji , v katerih se izvajajo operacije delnega kloniranja (sparse-checkout).
  • Ukaz "git sparse-checkout init" je bil opuščen in ga je treba nadomestiti z "git sparse-checkout set".
  • Dodana začetna izvedba novega "refable" zaledja za shranjevanje referenc, kot so veje in oznake, v repozitorij. Novo zaledje uporablja blokovno shranjevanje, ki ga uporablja projekt JGit, in je optimizirano za shranjevanje zelo velikega števila referenc. Zaledje še ni integrirano s sistemom refs in ni pripravljeno za praktično uporabo.
  • Barvna paleta ukaza "git grep" je bila prilagojena, da se ujema s pripomočkom GNU grep.

Vir: opennet.ru

Dodaj komentar