VĂ€ljastamine jaotatud versioonihalduse sĂŒsteem Git 2.26

Saadaval jaotatud lĂ€htekoodi haldamise sĂŒsteemi vĂ€ljaanne Git 2.26.0. Git on ĂŒks populaarsemaid, usaldusvÀÀrsemaid ja kĂ”rge jĂ”udlusega versioonihalduse sĂŒsteeme, mis pakub paindlikke mittelineaarse arenduse vahendeid, mis pĂ”hinevad harude ja ĂŒhenduste haldamisel. Ajaloo terviklikkuse ja tagajĂ€rgede muutuste eest kaitsmiseks kasutatakse kogu eelneva ajaloo automaatset hashimist igas commit'is, vĂ”imaldades ka arendajatelt allkirjastatud digitaalset sammsisenemist ja commit'ide tagamisstrateegiaid.

VÔrreldes eelmise versiooniga sisaldab uus versioon 504 muudatust, mille on ette valmistanud 64 arendajat, kellest 12 osaleb arenduses esmakordselt. Peamised uuendused:

  • Vaikimisi on ĂŒleminek tehtud teise versiooni peale kommunikatsiooniprotokolli Git, mida kasutatakse kliendi kaugĂŒhenduses Git-serveriga. Protokolli teine versioon on mĂ€rkimisvÀÀrne, kuna see pakub vĂ”imalust filtreerida harusid ja silte serveri kĂŒljelt, pakkudes kliendile lĂŒhendatud nimekirja linkidest. Varem, kui kĂ€idi mis tahes tĂ”mbekommandos, saadeti kliendile alati kogu hoidlas olevate linkide tĂ€ielik loetelu, isegi kui klient uuendas ainult ĂŒhte haru vĂ”i kontrollis oma hoidla koopia ajakohasust. Teiseks mĂ€rkimisvÀÀrseks uuenduseks on uute funktsioonide lisamise vĂ”imalus protokollile, kui uusi funktsioone ilmneb tööriistade komplektis. Klientide kood jÀÀb ĂŒhilduvaks vana protokolliga ja vĂ”ib jĂ€tkata töötamist nii uute kui ka vanade serveritega, keerates automaatselt tagasi esimesele versioonile, kui server ei toeta teist.
  • KĂ€sku „git config“ on lisatud valik „—show-scope“, mis lihtsustab tuvastamist, kus on mÀÀratud konkreetsed seaded. Git vĂ”imaldab mÀÀrata seadistusi erinevates kohtades: hoidlas (.git/info/config), kasutajakatkendis (~/.gitconfig), sĂŒsteemifailis (/etc/gitconfig) ning samuti kĂ€surea valikute ja keskkonnamuutujate kaudu. KĂ€sku „git config“ tĂ€ites on ĂŒsna keeruline mĂ”ista, kus tĂ€pselt on otsitav seadistus mÀÀratud. Selle probleemi lahendamiseks oli saadaval valik „—show-origin“, kuid see nĂ€itab vaid faili teed, kus seadistus on mÀÀratud, mis on kasulik, kui on soov faili redigeerida, kuid ei aita, kui on soov muuta vÀÀrtust „git config“ kaudu, kasutades valikuid „—system“, „—global“ vĂ”i „—local“. Uus valik „—show-scope“ kuvab muutujate mÀÀramise konteksti ja seda saab kasutada koos „—show-origin“.

    $ git —list —show-scope —show-origin
    global file:/home/user/.gitconfig diff.interhunkcontext=1
    global file:/home/user/.gitconfig push.default=current
    [
]
    local file:.git/config branch.master.remote=origin
    local file:.git/config branch.master.merge=refs/heads/master

    $ git config —show-scope —get-regexp 'diff.*'
    global diff.statgraphwidth 35
    local diff.colormoved plain

    $ git config —global —unset diff.statgraphwidth

  • Sidumis seadistustes kasutajaandmed URL-id vĂ”ivad kasutada maske. HTTP seaded ja Git-i kasutajaandmed saavad seadistada nii kĂ”igi ĂŒhenduste (http.extraHeader, credential.helper) kui ka URL-iga seotud ĂŒhenduste (credential.https://example.com.helper, credential.https://example.com.helper) jaoks. Siiani lubati maske, nagu nĂ€iteks *.example.com, ainult HTTP seadistustes, kuid mitte kasutajaandmete mĂ€llu seadmise puhul. Git 2.26 on need erinevused kĂ”rvaldatud, ning nĂ€iteks saab nĂŒĂŒd seada kasutajanime kĂ”igile alamdomeenidele jĂ€rgmiselt:

    [credential «https://*.example.com»]

    username = ttaylorr

  • Eksperimentaalse osalise kloonimise toe laiendamine jĂ€tkub, vĂ”imaldades edastada vaid osa andmeid ja töötada puuduliku koopia repo versiooniga. Uues vĂ€ljalaskeversioonis on lisatud uus kĂ€sk „git sparse-checkout add“, mis vĂ”imaldab lisada eraldi katalooge, et rakendada „checkout“ operatsiooni vaid osa tööpuust, selle asemel, et loetleda kĂ”ik sellised kataloogid korraga kĂ€su „git sparse-checkout set“ kaudu (saab lisada ĂŒhe katalooge, ilma et peaks iga kord kogu loendit uuesti sisestama).
    NĂ€iteks, et kloonida git/git hoidlat, edastamata blobe, piirates kontrolli ainult töökoopia juurkatalooge ning eraldi sildistades kataloogide „t” ja „Documentation” vĂ€ljavĂ”tmist, vĂ”ib mĂ€rkida:

    $ git clone —filter=blob:none —sparse git@github.com:git/git.git

    $ cd git
    $ git sparse-checkout init —cone

    $ git sparse-checkout add t
    
.
    $ git sparse-checkout add Documentation
    
.
    $ git sparse-checkout list
    Documentation
    t

  • On mĂ€rgatavalt suurenenud kĂ€su „git grep” jĂ”udlus, mida kasutatakse nii hoidla praeguse sisu kui ka ajalooliste ĂŒlevaadete otsimiseks. Otsingu kiirusetĂ”stmiseks lubati tööpuu sisu skaneerimist mitme threadiga („git grep —threads”), kuid ajaloolistes ĂŒlevaadetes oli otsing ĂŒheettevĂ”tteline. NĂŒĂŒd on see piirang kĂ”rvaldatud, rakendades objektihoidlasse lugemisoperatsioonide paralleelseid vĂ”imalusi. Vaikimisi seatakse lĂ”ime arv vĂ”rdseks CPU tuumade arvuga, mis enamasti ei nĂ”ua nĂŒĂŒd „—threads” valiku selget mÀÀramist.
  • Lisatud on subkĂ€skude, teede, linkide ja muude kĂ€suargumendid „git worktree“ automaatse tĂ€iendamise tugi, mis vĂ”imaldab töötada mitme hoidla töökoopiaga.
  • Lisatud tugi erksatele vĂ€rvidele, millel on ANSI escape-jĂ€rjestused. NĂ€iteks saab vĂ€rvide seadistustes „git config —color“ vĂ”i „git diff —color-moved“ erksinise jaoks kasutada valikut „%C(brightblue)“.
  • Lisatud uus skripti versioon fsmonitor-watchman, mis tagab integreerimise Facebook Watchman failide muudatuste ja uute failide jĂ€lgimise kiirendamiseks. PĂ€rast git'i uuendamist on vajalik asendada hook hoidlas.
  • Lisatud on optimeerimised osalise kloonimise (partial clones) operatsioonide kiirendamiseks, mis on seotud bitmapsĂŒsteemide rakendamisega, et vĂ€ltida kĂ”igi objektide tĂ€ielikku lĂ€bivaatamist andmete filtreerimise ajal. Blobide kontrollimine (—filter=blob:none ja —filter=blob:limit=n) osalise kloonimise kĂ€igus toimub nĂŒĂŒd
    (bitmap machinery) objektide tĂ€ieliku lĂ€bivaatamise vĂ€ltimiseks tagastamise filtreerimise ajal. Blobide kontrollimine (—filter=blob:none ja —filter=blob:limit=n) osalise kloonimise korral toimub nĂŒĂŒd
    oluliselt kiiremini. GitHub kuulutas vÀlja nende optimeerimiste rakendamise ja osalise kloonimise katsetamise toe.
  • KĂ€sk «git rebase» on ĂŒle viidud teisele tagale, mis kasutab vaikimisi ‘merge’ mehhanismi (varem kasutati «rebase -i» jaoks) ‘patch+apply’ asemel. MĂ”ned pisiasjad erinevad tagade vahel, nĂ€iteks pĂ€rast konflikti lahendamist operatsiooni jĂ€tkamisel (git rebase —continue) pakub uus taga vĂ”imalust redigeerida commit'i sĂ”numit, samas kui vana kasutas lihtsalt vana sĂ”numit. Vana kĂ€itumise taastamiseks vĂ”ib kasutada valikut«—apply» vĂ”i seada konfiguratsioonimuutuja ‘rebase.backend’ vÀÀrtuseks ‘apply’.
  • Autentimisparameetrite kĂ€itleja nĂ€ide, mis on mÀÀratud .netrc kaudu, on muudetud kohe kasutamiseks sobivaks.
  • Lisatud seadistus gpg.minTrustLevel, et mÀÀrata minimaalne usaldusvÀÀrsuse tase erinevatele elementidele, mis teostavad digitaalse allkirja kontrolli.
  • «git rm» ja «git stash» on lisatud vĂ”imalus «—pathspec-from-file».
  • Testimiste kogude tĂ€iustamist on jĂ€tkatud, et valmistuda SHA-2 rĂ€simisalgoritmile ĂŒleminekuks SHA-1 asemel.

Allikas: opennet.ru

Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster