jaotatud lĂ€htekoodi haldamise sĂŒsteemi vĂ€ljaanne . 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. :
- Vaikimisi on ĂŒleminek tehtud 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 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 , mis tagab integreerimise failide muudatuste ja uute failide jÀlgimise kiirendamiseks. PÀrast git'i uuendamist on vajalik 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
