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) для избежании полного перебора всех объектов во время фильтрации отдачи. Проверка на блобы (—filter=blob:none и —filter=blob:limit=n) при частичном клонировании теперь производится
    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