jaotatud tekstihalduse süsteemi väljaanne . Git on üks populaarsemaid, usaldusväärsemaid ja kõrge jõudlusega versioonihaldussüsteeme, mis pakub paindlikke vahendeid mittelineaarseks arendamiseks, mis põhinevad harude haldamisel ja ühendamisel. Ajaloo terviklikkuse ja tagasivõtmise muutuste suhtes tagatakse mitteilmne räsimine kogu eelneva ajaloo igas commitis, samuti on võimalik eraldi sildite ja commitite digitaalsete allkirjadega kinnitamine.
Uue versiooniga on tehtud 504 muudatust, mille on teinud 64 arendajat, kellest 12 osales arenduses esmakordselt. :
- Olenud kaua ootamas, oleme nüüd üleminekuga vaikimisi Git-i suhtlusprotokolli, mis on vajalik kliendi kaugühenduseks Git-serveriga. Protokolli teise versiooni uusus seisneb serveripoolel harude ja siltide filtreerimise võimaluses, millega kliendile edastatakse lühendatud linkide nimekiri. Varem edastati igasuguste tõmmiste käivitamisel klientidele alati täiskogumik kõigist linkidest, isegi kui klient uuendas vaid ühte haru või kontrollis oma kohalikku repositooriumi. Teine suur uuendus on uute funktsioonide võimaldamine protokollis, kui uued funktsioonid muutuvad kergesti kättesaadavaks. Kliendi kood jääb vanade protokollide jaoks ühilduvaks ja töötab nii uute kui ka vanade serveritega, automaatselt naastes esimese versiooni juurde, kui server ei toeta teist.
- Käsku «git config» on lisatud valik «—show-scope», mis lihtsustab nende seade määramise kohta teabe leidmist. Git võimaldab seadistusi määrata erinevates kohtades: repositooriumi sees (.git/info/config), kasutaja kataloogis (~/.gitconfig), üldsüsteemi konfiguratsioonifailis (/etc/gitconfig), samuti käsurea valikute ja keskkonnamuutujate kaudu. «git config» käivitamine on keeruline selle määratlemise konteksti teadmiseks. Varem oli saadaval valik «—show-origin», mis lihtsalt näitas faili tee, kus seade määratletud, mis on kasulik faili redigeerimise ajal, kuid ei aita, kui soovitakse väärtust muuta käsuga «git config» koos valikutega «—system», «—global» või «—local». Uus valik «—show-scope» kuvab muutujate määratlemise 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
- Siduvate seadistuste URL maskide kasutamine on lubatud. HTTP seadistusi ja Git'i autentimist võib seadistada nii kõigile ühendustele (http.extraHeader, credential.helper) kui ka URL-i kinnitatud ühendustele (credential.https://example.com.helper, credential.https://example.com.helper). Aikani on maskide, nagu *.example.com, kasutamine olnud lubatud ainult HTTP seadistuste jaoks, kuid pole toetatud autentimiskinnituste sidumisel. Git 2.26 on need erinevused kõrvaldatud ja näiteks saab kasutajanime siduda nüüd kõigile alamdomeenidele:
[credential «https://*.example.com»]
username = ttaylorr
- Eksperimenteerimise toe jätkamine osaliste kloonide (partial clones) osas, mis võimaldab kanda edasi vaid osa andmeid ja töötada puuduliku repositooriumi koopiaga. Uues versioonis on lisatud uus käsk „git sparse-checkout add“, mis võimaldab lisada üksikuid kaustu „checkout“ toimingu rakendamiseks vaid osa tööpuust, selle asemel et loetleda kõik sellised kaustad korraga käsu „git sparse-checkout set“ kaudu (saab lisada kaustasid üksikult, ilma et peaks iga kord kogu loendit uuesti esitama).
Näiteks repositooriumi git/git kloonimise korral ilma blobide edastamiseta, piirates kontrolli ainult töökoopia juurkaustaga ja eraldi märgistusega kataloogide „t“ ja „Documentation“ väljavõtmiseks, saab 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
Dokumentatsioon
t - Käsku „git grep“ on märgatavalt kiirus suurenenud, kasutades nii praegust repositooriumi sisu kui ka ajaloolisi ülevaateid. Otsimise kiirendamiseks oli lubatud tööpuude sisu skanneerimine mitme lõimega („git grep —threads“), kuid ajalooliste ülevaatuste otsimine oli ühe lõimega. Nüüd on see piirang eemaldatud objekti salvestuses lugemise toimingute paralleelseteks rakendamiseks. Vaikimisi määratakse lõimede arv CPU tuumade arvule, mis enamikel juhtudel ei nõua nüüd valiku „—threads“ selget seadistamist.
- Lisatud on automaatse täitmise tugi alakkäskude, teede, linkide ja teiste „git worktree“ käsu argumentide sisestamiseks, mis võimaldab töötada mitme repositooriumi töökoopia korral.
- Toetatud on erksate värvide kasutamine, mille jaoks on olemas ANSI escape-järjestused. Näiteks värvitoonide seadetes "git config --color" või "git diff --color-moved" variandi "--format" puhul saab erksinise jaoks kasutada "%C(brightblue)".
- Lisatud on uus skripti versioon , mis tagab integreerimise failide muudatuste jälgimise ja uute failide ilmumise kiirendamiseks. Pärast git'i värskendamist tuleb hook-i hoidlas.
- Lisatud on optimeerimised osaliste kloonimise (partial clones) operatsioonide kiirendamiseks, mis on seotud bitikaarte kasutamisega
(bitmap machinery), et vältida kõikide objektide täisläbimist andmete filtreerimise ajal. Kontroll blobide üle (—filter=blob:none ja —filter=blob:limit=n) osalise kloonimise korral toimub nüüd
oluliselt kiiremini. GitHub teatas nende optimeerimisega seotud patchide rakendamisest ning katse otse toetamist osalise kloonimise jaoks. - Käsku «git rebase» on viidud teisele taustale, mis kasutab nüüd vaikimisi ‘merge’ mehhanismi (varem kasutati «rebase -i» puhul) selle asemel, et kasutada ‘patch+apply’. Mõnes detailis erinesid taustad, näiteks pakkus uus taust pärast konflikti lahendamise jätkamist (git rebase —continue) võimalust redigeerida commiti 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’.
- Autentimise parameetrite käsitleja, mis on määratud .netrc kaudu, on muudetud kasutamiseks valmis kujule.
- Lisatud on seade gpg.minTrustLevel, et määrata minimaalne usaldusväärsuse tase erinevatele elementidele, mis kontrollivad digitaalset allkirja.
- Käskudes «git rm» ja «git stash» on lisatud valik «—pathspec-from-file».
- Testrijade täiendamine on jätkunud seoses SHA-2 krüptograafilise algoritmi üleminekuga SHA-1 asemel.
Allikas: opennet.ru
