Git 2.35 bronbeheervrystelling

Na twee maande se ontwikkeling is die verspreide bronbeheerstelsel Git 2.35 vrygestel. Git is een van die gewildste, betroubare en hoëprestasie-weergawebeheerstelsels, wat buigsame nie-lineêre ontwikkelingsinstrumente bied wat gebaseer is op vertakking en samesmelting. Om die integriteit van die geskiedenis en weerstand teen terugwerkende veranderinge te verseker, word implisiete hashing van die hele vorige geskiedenis in elke commit gebruik; dit is ook moontlik om individuele etikette en commits te sertifiseer met digitale handtekeninge van die ontwikkelaars.

In vergelyking met die vorige weergawe, het die nuwe weergawe 494 veranderinge ingesluit, voorberei met die deelname van 93 ontwikkelaars, waarvan 35 vir die eerste keer aan ontwikkeling deelgeneem het. Belangrikste innovasies:

  • Die moontlikhede om SSH-sleutels te gebruik om Git-voorwerpe digitaal te onderteken, is uitgebrei. Om die geldigheidstydperk van verskeie sleutels te beperk, is ondersteuning vir die OpenSSH-aanwysings “valid-before” en “valid-after” bygevoeg, waarmee jy kan verseker dat die korrekte werk met handtekeninge na die sleutel deur een van die ontwikkelaars geroteer is. Voor dit was daar 'n probleem met die skeiding van handtekeninge deur die ou en nuwe sleutel - as jy die ou sleutel uitvee, sal dit onmoontlik wees om die handtekeninge wat daarmee gemaak is te verifieer, en as jy dit verlaat, sal dit moontlik bly om skep nuwe handtekeninge met die ou sleutel, wat reeds deur 'n ander sleutel vervang is. Deur geldig-voor en geldig-na te gebruik, kan jy die omvang van die sleutels skei op grond van die tyd wat die handtekening geskep is.
  • In die merge.conflictStyle-instelling, wat jou toelaat om die modus te kies vir die vertoon van inligting oor konflikte tydens 'n samesmelting, het ondersteuning vir die "zdiff3"-modus verskyn, wat alle standaardlyne wat aan die begin of einde van die konflik gespesifiseer is, buite die konflik skuif area, wat 'n meer kompakte aanbieding van inligting moontlik maak.
  • Die "--stadium"-modus is bygevoeg by die "git stash"-opdrag, wat jou toelaat om slegs veranderinge wat by die indeks gevoeg is, te versteek, byvoorbeeld in 'n situasie wanneer jy sommige van die komplekse veranderinge tydelik moet uitstel om eers voeg by wat reeds gereed is en hanteer die res na 'n rukkie. Die modus is soortgelyk aan die "git commit" opdrag, skryf slegs die veranderinge wat in die indeks geplaas is, maar in plaas daarvan om 'n nuwe commit te skep in "git stash —stage", word die resultaat in die tydelike stash area gestoor. Sodra die veranderinge nodig is, kan dit teruggekeer word met die "git stash pop" opdrag.
  • 'n Nuwe formaat spesifiseerder is bygevoeg by die "git log" opdrag, "--format=%(beskryf)", wat jou toelaat om die uitvoer van "git log" te kombineer met die uitvoer van die "git describe" opdrag. Die parameters vir "git describe" word direk in die spesifiseerder gespesifiseer ("-format=%(beskryf:match= ,uitsluit= )"), waarin jy ook verkorte merkers kan insluit ("—format=%(describe:tags= )") en stel die aantal heksadesimale karakters op om voorwerpe te identifiseer (“—format=%(beskryf:abbrev= )"). Byvoorbeeld, om die laaste 8 commits te lys waarvan die etikette nie 'n vrystellingskandidaatmerker het nie, en om 8-karakter identifiseerders te spesifiseer, kan jy die opdrag gebruik: $ 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.bg-2d b95bd94 bbc056f2.34.1 v642-56-gffb95f8d v7-2.34.1- gdf203c9adeb2980902 v2.34.1-640-g3b41a212
  • Die user.signingKey-instelling ondersteun nou nuwe tipes sleutels wat nie beperk is tot die “ssh-”-tipe nie en wat die volledige lêerpad na die sleutel spesifiseer. Alternatiewe tipes word gespesifiseer deur die "sleutel::"-voorvoegsel te gebruik, byvoorbeeld "sleutel::ecdsa-sha2-nistp256" vir ECDSA-sleutels.
  • Die spoed van die generering van 'n lys veranderinge in die "-histogram"-modus, sowel as wanneer die "-color-moved-ws"-opsie gebruik word, wat die verligting van spasies in 'n kleurverskil beheer, is merkbaar verhoog.
  • Die "git jump"-opdrag, wat gebruik word om Vim te voorsien van inligting oor die presiese sprong na die verlangde posisie in 'n lêer wanneer samesmeltingskonflikte ontleed word, verskille bekyk word of 'n soekbewerking uitgevoer word, bied die vermoë om die samesmeltingskonflikte wat gedek word, te beperk. Byvoorbeeld, om bewerkings slegs tot die "foo"-gids te beperk, kan jy "git jump merge - foo" spesifiseer en die "Documentation"-gids van verwerking uitsluit - "git jump merge - ':^Documentation'"
  • Werk is gedoen om die gebruik van die "size_t" tipe in plaas van "unsigned long" te standaardiseer vir waardes wat die grootte van voorwerpe verteenwoordig, wat dit moontlik gemaak het om "skoon" en "smeer" filters te gebruik met lêers groter as 4 GB op alle platforms, insluitend platforms met die LLP64-datamodel, die tipe "unsigned long" waarin beperk is tot 4 grepe.
  • Die "-empty=(stop|drop|hou)" opsie is bygevoeg by die "git am" opdrag, wat jou toelaat om die gedrag te kies vir leë boodskappe wat nie pleisters bevat wanneer pleisters uit die posbus ontleed word nie. Die waarde "stop" sal die hele pleisterbewerking beëindig, "drop" sal 'n leë pleister oorslaan, en "hou" sal 'n leë commit skep.
  • Bygevoeg ondersteuning vir gedeeltelike indekse (yl indeks) by die opdragte "git reset", "git diff", "git blame", "git fetch", "git pull" en "git ls-files" om werkverrigting te verbeter en spasie te bespaar in bewaarplekke , waarin gedeeltelike kloningsoperasies (spare-checkout) uitgevoer word.
  • Die "git sparse-checkout init" opdrag is afgekeur en moet vervang word deur "git sparse-checkout set".
  • Bygevoeg aanvanklike implementering van 'n nuwe "herstelbare" backend vir die stoor van verwysings soos takke en etikette in die bewaarplek. Die nuwe agterkant gebruik blokberging wat deur die JGit-projek gebruik word en is geoptimaliseer vir die stoor van baie groot getalle verwysings. Die agterkant is nog nie geïntegreer met die refs-stelsel nie en is nie gereed vir praktiese gebruik nie.
  • Die kleurpalet van die "git grep"-opdrag is aangepas om by die GNU grep-nutsding te pas.

Bron: opennet.ru

Voeg 'n opmerking