Izdaja porazdeljenega sistema za nadzor vira Git 2.26

Na voljo izdaja porazdeljenega sistema za nadzor vira Git 2.26.0. Git je eden najbolj priljubljenih, zanesljivih in visoko zmogljivih sistemov za nadzor različic, ki zagotavlja prilagodljiva nelinearna razvojna orodja, ki temeljijo na razvejanju in združevanju. Za zagotovitev celovitosti zgodovine in odpornosti proti retroaktivnim spremembam se v vsaki objavi uporablja implicitno zgoščevanje celotne prejšnje zgodovine, možno je tudi certificiranje posameznih oznak in potrditev z digitalnimi podpisi razvijalcev.

V primerjavi s prejšnjo izdajo je nova različica vsebovala 504 spremembe, pripravljenih s sodelovanjem 64 razvijalcev, od tega jih je 12 pri razvoju sodelovalo prvič. Glavni inovacije:

  • Privzeto je bilo preklopljeno na druga različica Komunikacijski protokol Git, ki se uporablja, ko se odjemalec na daljavo poveže s strežnikom Git. Druga različica protokola je znana po zagotavljanju zmožnosti filtriranja vej in oznak na strani strežnika, ki odjemalcu vrne skrajšan seznam povezav. Prej je vsak ukaz za vlečenje odjemalcu vedno poslal celoten seznam referenc v celotnem repozitoriju, tudi ko je odjemalec posodabljal samo eno vejo ali preverjal, ali je njegova kopija repozitorija posodobljena. Druga pomembna novost je zmožnost dodajanja novih zmogljivosti protokolu, ko postane nova funkcionalnost na voljo v kompletu orodij. Koda odjemalca ostane združljiva s starim protokolom in lahko še naprej deluje z novimi in starimi strežniki, pri čemer se samodejno vrne na prvo različico, če strežnik ne podpira druge.
  • Možnost “-show-scope” je bila dodana ukazu “git config”, kar olajša prepoznavanje mesta, kjer so določene nastavitve. Git vam omogoča, da določite nastavitve na različnih mestih: v skladišču (.git/info/config), v uporabniškem imeniku (~/.gitconfig), v sistemski konfiguracijski datoteki (/etc/gitconfig) in prek ukaza možnosti linije in spremenljivke okolja. Pri izvajanju »git config« je precej težko razumeti, kje natančno je definirana želena nastavitev. Za rešitev te težave je bila na voljo možnost “--show-origin”, ki pa prikazuje le pot do datoteke, v kateri je določena nastavitev, kar je uporabno, če nameravate datoteko urejati, ne pomaga pa, če morate spremeniti vrednost prek “git config” z možnostmi "--system", "--global" ali "-local". Nova možnost "--show-scope" prikaže kontekst definicije spremenljivke in se lahko uporablja v povezavi z -show-origin:

    $ git --list --show-scope --show-origin
    globalna datoteka:/home/user/.gitconfig diff.interhunkcontext=1
    globalna datoteka:/home/user/.gitconfig push.default=trenutno
    […] lokalna datoteka:.git/config branch.master.remote=origin
    lokalna datoteka:.git/config branch.master.merge=refs/heads/master

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

    $ git config --global --unset diff.statgraphwidth

  • V nastavitvah vezave poverilnice Uporaba mask v URL-jih je dovoljena. Vse nastavitve HTTP in poverilnice v Gitu je mogoče nastaviti za vse povezave (http.extraHeader, credential.helper) in za povezave, ki temeljijo na URL (credential.https://example.com.helper, credential.https: //example. com.pomočnik). Do zdaj so bili nadomestni znaki, kot je *.example.com, dovoljeni samo za nastavitve HTTP, niso pa bili podprti za vezavo poverilnic. V Git 2.26 so te razlike odpravljene in na primer za povezovanje uporabniškega imena z vsemi poddomenami lahko zdaj podate:

    [poverilnica "https://*.example.com"]

    uporabniško ime = ttaylorr

  • Nadaljuje se širitev eksperimentalne podpore za delno kloniranje (delni kloni), ki omogoča prenos le dela podatkov in delo z nepopolno kopijo repozitorija. Nova izdaja doda nov ukaz "git sparse-checkout add", ki vam omogoča dodajanje posameznih imenikov, da uporabite operacijo "checkout" le za del delovnega drevesa, namesto da navedete vse take imenike hkrati z ukazom "git sparse-checkout set" (lahko dodate enega za drugim en imenik, ne da bi vsakič znova podali celoten seznam).
    Na primer, če želite klonirati repozitorij git/git brez potrditve blobov, omejiti prevzem samo na korenski imenik delovne kopije in ločeno označiti prevzem za imenika "t" in "Documentation", lahko podate:

    $ git clone --filter=blob:none --sparse [e-pošta zaščitena]:git/git.git

    $ cd git
    $ git sparse-checkout init --cone

    $ git sparse-checkout add t
    ....
    $ git sparse-checkout add Dokumentacija
    ....
    $ git sparse-checkout list
    dokumentacija
    t

  • Zmogljivost ukaza »git grep«, ki se uporablja za iskanje po trenutni vsebini repozitorija in zgodovinskih revizijah, je bila znatno izboljšana. Za pospešitev iskanja je bilo mogoče pregledati vsebino delovnega drevesa z uporabo več niti (»git grep –threads«), vendar je bilo iskanje v zgodovinskih revizijah enonitno. Zdaj je bila ta omejitev odstranjena z implementacijo zmožnosti vzporedne bralne operacije iz shrambe objektov. Privzeto je število niti nastavljeno enako številu jeder procesorja, kar zdaj v večini primerov ne zahteva izrecne nastavitve možnosti “-threads”.
  • Dodana podpora za samodejno dokončanje vnosa podukazov, poti, povezav in drugih argumentov ukaza »git worktree«, ki vam omogoča delo z več delovnimi kopijami repozitorija.
  • Dodana podpora za svetle barve, ki imajo ubežna zaporedja ANSI. Na primer, v nastavitvah za poudarjene barve »git config –color« ali »git diff –color-moved« lahko določite »%C(brightblue)« prek možnosti »--format« za svetlo modro.
  • Dodana nova različica skripta fsmonitor-stražar, ki zagotavlja integracijo z mehanizmom Facebook čuvaj za pospešitev sledenja spremembam datotek in pojavu novih datotek. Po posodobitvi je potreben git zamenjati kavelj v skladišču.
  • Dodane optimizacije za pospešitev delnih klonov pri uporabi bitnih slik
    (stroji bitne slike), da se izognete popolnemu iskanju vseh predmetov pri filtriranju izhoda. Preverjanje blobov (—filter=blob:none in —filter=blob:limit=n) med delnim kloniranjem se zdaj izvaja
    bistveno hitreje. GitHub je napovedal popravke s temi optimizacijami in eksperimentalno podporo za delno kloniranje.

  • Ukaz »git rebase« je bil premaknjen v drugo zaledje z uporabo privzetega mehanizma »združi« (prej uporabljen za »rebase -i«) namesto »patch+apply«. Ozadja se razlikujejo v nekaterih majhnih pogledih, na primer po nadaljevanju operacije po razrešitvi spora (git rebase --continue) novo zaledje ponudi urejanje sporočila objave, medtem ko je staro preprosto uporabilo staro sporočilo. Če se želite vrniti na staro vedenje, lahko uporabite možnost »--apply« ali nastavite konfiguracijsko spremenljivko »rebase.backend« na »apply«.
  • Primer obdelovalca parametrov za preverjanje pristnosti, določenih prek .netrc, je bil zmanjšan na obliko, ki je primerna za takojšnjo uporabo.
  • Dodana nastavitev gpg.minTrustLevel za nastavitev najnižje stopnje zaupanja za različne elemente, ki izvajajo preverjanje digitalnega podpisa.
  • Dodana možnost »--pathspec-from-file« za »git rm« in »git stash«.
  • Nadaljevalo se je izboljšanje testnih zbirk v pripravah na prehod na algoritem zgoščevanja SHA-2 namesto SHA-1.

Vir: opennet.ru

Dodaj komentar