Izdanje distribuiranog sustava kontrole izvora Git 2.26
Dostupno izdanje distribuiranog sustava kontrole izvora Git 2.26.0. Git je jedan od najpopularnijih, pouzdanih i visokoučinkovitih sustava za kontrolu verzija, koji pruža fleksibilne nelinearne razvojne alate temeljene na grananju i spajanju. Kako bi se osigurala cjelovitost povijesti i otpornost na retroaktivne promjene, implicitno hashiranje cijele prethodne povijesti koristi se u svakom predanju; također je moguće certificirati pojedinačne oznake i predaje digitalnim potpisima programera.
U usporedbi s prethodnim izdanjem, nova verzija je uključivala 504 promjena, u pripremi su sudjelovala 64 programera, od kojih je 12 prvi put sudjelovalo u razvoju. Glavniinovacije:
Zadana vrijednost je promijenjena druga verzija Git komunikacijski protokol, koji se koristi kada se klijent daljinski povezuje s Git poslužiteljem. Druga verzija protokola poznata je po pružanju mogućnosti filtriranja grana i oznaka na strani poslužitelja, vraćajući skraćeni popis poveznica klijentu. Prethodno bi svaka naredba povlačenja uvijek slala klijentu potpuni popis referenci u cijelom repozitoriju, čak i kada je klijent ažurirao samo jednu granu ili provjeravao je li njegova kopija repozitorija ažurna. Još jedna značajna inovacija je mogućnost dodavanja novih mogućnosti protokolu kako nova funkcionalnost postaje dostupna u kompletu alata. Kod klijenta ostaje kompatibilan sa starim protokolom i može nastaviti raditi s novim i starim poslužiteljima, automatski se vraćajući na prvu verziju ako poslužitelj ne podržava drugu.
Naredbi “git config” dodana je opcija “-show-scope” koja olakšava prepoznavanje mjesta gdje su određene postavke definirane. Git vam omogućuje da definirate postavke na različitim mjestima: u repozitoriju (.git/info/config), u korisničkom direktoriju (~/.gitconfig), u konfiguracijskoj datoteci za cijeli sustav (/etc/gitconfig) i putem naredbe opcije linije i varijable okoline. Prilikom izvršavanja “git config” prilično je teško razumjeti gdje je točno definirana željena postavka. Za rješavanje ovog problema bila je dostupna opcija “--show-origin”, ali ona pokazuje samo put do datoteke u kojoj je definirana postavka, što je korisno ako namjeravate uređivati datoteku, ali ne pomaže ako trebate promijeniti vrijednost putem “git config” koristeći opcije "--system", "--global" ili "-local". Nova opcija "--show-scope" prikazuje kontekst definicije varijable i može se koristiti u kombinaciji s -show-origin:
$ git config --show-scope --get-regexp 'diff.*'
global diff.statgraphwidth 35
local diff.colormoved plain
$ git config --global --unset diff.statgraphwidth
U postavkama vezanja vjerodajnice Dopuštena je upotreba maski u URL-ovima. Sve HTTP postavke i vjerodajnice u Gitu mogu se postaviti i za sve veze (http.extraHeader, credential.helper) i za veze temeljene na URL-u (credential.https://example.com.helper, credential.https: //example. com.pomoćnik). Do sada su zamjenski znakovi kao što je *.example.com bili dopušteni samo za HTTP postavke, ali nisu bili podržani za vezanje vjerodajnica. U Gitu 2.26 te su razlike eliminirane i, na primjer, za vezanje korisničkog imena za sve poddomene sada možete navesti:
[vjerodajnica "https://*.example.com"]
korisničko ime = ttaylorr
Nastavlja se proširenje eksperimentalne podrške za djelomično kloniranje (djelomični klonovi), što vam omogućuje prijenos samo dijela podataka i rad s nepotpunom kopijom repozitorija. Novo izdanje dodaje novu naredbu "git sparse-checkout add", koja vam omogućuje dodavanje pojedinačnih direktorija za primjenu operacije "checkout" samo na dio radnog stabla, umjesto ispisivanja svih takvih direktorija odjednom putem naredbe "git sparse-checkout set" (možete dodati jedan po jedan direktorij, bez ponovnog navođenja cijelog popisa svaki put).
Na primjer, za kloniranje git/git repozitorija bez predaje blobova, ograničavajući odjavu samo na korijenski direktorij radne kopije i odvojeno označavajući odjavu za direktorije "t" i "Documentation", možete navesti:
$ git sparse-checkout add t
....
$ git sparse-checkout add Dokumentacija
....
$ git sparse-checkout lista
Dokumentacija
t
Izvedba naredbe “git grep”, koja se koristi za pretraživanje trenutnog sadržaja repozitorija i povijesnih revizija, značajno je poboljšana. Kako bi se ubrzalo pretraživanje, bilo je moguće skenirati sadržaj radnog stabla koristeći više niti (“git grep –threads”), ali je pretraga u povijesnim revizijama bila jednonitna. Sada je to ograničenje uklonjeno implementacijom mogućnosti paraleliziranja operacija čitanja iz pohrane objekta. Prema zadanim postavkama, broj niti je postavljen jednak broju CPU jezgri, što sada u većini slučajeva ne zahtijeva eksplicitno postavljanje opcije “-threads”.
Dodana je podrška za automatsko dovršavanje unosa podnaredbi, staza, veza i drugih argumenata naredbe “git worktree”, što vam omogućuje rad s nekoliko radnih kopija repozitorija.
Dodana podrška za svijetle boje koje imaju ANSI izlazne sekvence. Na primjer, u postavkama za istaknute boje “git config –color” ili “git diff –color-moved” možete odrediti “%C(brightblue)” putem opcije “--format” za svijetlo plavu.
Dodana nova verzija skripte fsmonitor-čuvar, pružajući integraciju s mehanizmom Čuvar Facebooka kako bi se ubrzalo praćenje promjena datoteka i pojavljivanje novih datoteka. Nakon ažuriranja potreban je git zamijeniti kuka u spremištu.
Dodane su optimizacije za ubrzavanje djelomičnih klonova pri korištenju bitmapa
(strojevi za bitmape) kako biste izbjegli potpunu pretragu svih objekata prilikom filtriranja izlaza. Sada se provodi provjera blobova (—filter=blob:none i —filter=blob:limit=n) tijekom djelomičnog kloniranja
znatno brže. GitHub je najavio zakrpe s ovim optimizacijama i eksperimentalnu podršku za djelomično kloniranje.
Naredba "git rebase" premještena je u drugu pozadinu, koristeći zadani mehanizam "spoji" (prethodno korišten za "rebase -i") umjesto "patch+apply". Pozadine se razlikuju u nekim malim stvarima, na primjer, nakon nastavka operacije nakon rješavanja sukoba (git rebase --continue), nova pozadina nudi uređivanje poruke predaje, dok je stara jednostavno koristila staru poruku. Za povratak na staro ponašanje možete upotrijebiti opciju "--apply" ili konfiguracijsku varijablu 'rebase.backend' postaviti na 'apply'.
Primjer rukovatelja za parametre provjere autentičnosti specificirane putem .netrc smanjen je na oblik prikladan za korištenje izvan okvira.
Dodana je postavka gpg.minTrustLevel za postavljanje minimalne razine povjerenja za različite elemente koji izvode provjeru digitalnog potpisa.
Dodana je opcija "--pathspec-from-file" u "git rm" i "git stash".
Nastavljeno je poboljšanje paketa testova u pripremi za prijelaz na algoritam raspršivanja SHA-2 umjesto SHA-1.