Jaotatud versioonihalduse süsteemi Git 2.25 väljaanne

Saadaval jaotatud tekstihalduse süsteemi väljaanne Git 2.25.0. 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 versiooni on tehtud 583 muudatust, milles osales 84 arendajat, kellest 32 osalesid esmakordselt arenduses. Peamised uuendused:

  • Osalise kloonimise (partial clones) funktsionaalsus läheneb stabiliseerumisele ja täielikule valmisolekule, võimaldades edastada ainult osa andmetest ja töötada mittetäieliku koopia käsiraamatust. Tavalise kloonimise korral kopeeritakse kõik andmed, sealhulgas iga faili iga versioon muutuste ajaloost. Väga suurte käsiraamatute puhul toob andmete kopeerimine kaasa olulise liikluse ja kettaruumi suurenemise, isegi kui arendajat huvitab vaid failide alamkogum. Uues versioonis on välja pakutud eksperimentaalne käsk «sparse-checkout» ja uus valik «—sparse» käsule «clone», et lihtsustada ainult osa töökataloogide allalaadimist.

    Varem tehti valikuline kloonimine, määrates filtrid ülejäänud sisu filtreerimiseks ja valiku «—no-checkout» abil, et keelata puuduvate failide taastamine. Seejärel, enne checkout'i toimingu tegemist, tuli lubada seade core.sparseCheckout ja määrata failis .git/info/sparse-checkout mustrite loend, mida ei tohiks kaasata. Näiteks, et kloonida ilma blobideta ja keelata failide välja tõmbamine sügavamates kataloogides, mis on sügavuses 2 ja rohkem, võis teha järgmist:

    git clone —filter=blob:none —no-checkout /your/repository/here repo
    $ cd repo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout .

    Uus käsk «git sparse-checkout» lihtsustab protsessi oluliselt ja viib töö korraldamise mittetäieliku käsiraamatuga käskudeks:

    git clone —filter=blob:none —sparse /your/repository/here repo
    git sparse-checkout set /path/to/check/out

    Käsk sparse-checkout võimaldab määrata failide teede loendi checkout'i (set) ilma .git/info/sparse-checkout käsitsi seadistamiseta, samuti kuvada praeguse teede loendi (list) ja lubada või keelata osalised checkout'id (enable/disable).

    Väga suurte käsiraamatute ja mustrite loendite hõlbustamiseks on välja pakutud seade «git config core.sparseCheckoutCone«, piiravad lubatud malle (edasise genereerimise asemel .gitignore malli saab määrata, kas kõik teed ja failid antud alamkaustas tuleks välja tõmmata). Näiteks kui suures reposis on kataloog «A/B/C» ja kogu töö on keskendunud alamkaustas «C», siis kui aktiveerida sparseCheckoutCone režiim, käsk «git sparse-checkout set A/B/C» tõmbab sisu «C» täielikult, kuid «A» ja «B» tõmbab ainult vajalikud osad, et töötada «C»-ga.

  • Dokumentatsioonist («git rebase -h») on eemaldatud kõik viidatud valikule «—preserve-merges», mis on kuulutatud vananenuks ja selle asemel tuleks kommitte kogumi edasiviimiseks kasutada «git rebase —rebase-merges«.
  • Jes cross-reference it, et tõstaks patechtide sõnumite loetavust, mis saadetakse postitusloenditesse, on lisatud valik «git format-patch —cover-from-description subject», mille määramisel kasutatakse patachide kogumi saatekirja teemana hargneva teksti esimest lõiku.
  • On rakendatud toetust käskude «git apply —3way» ja sätete «merge.conflictStyle» ühiskasutamiseks (nüüd arvestab «git apply» konflikti kirjeldusstiilide andmeid, kui konflikt tekib pärast patchi rakendamist repole).
  • Funktsioonide määratlemise koode, mida kasutatakse sellistes toimingutes nagu «git diff/grep —show-function/—function-context», on laiendatud võimalusega määrata funktsiooni piire jagamine programmides keeles Elixir.
  • «git add», «git commit», «git reset» ja muud käskude on lisatud uus valik «—pathspec-from-file», mis võimaldab laadida teede nimekirja failist või sisendvoost, selle asemel, et loetleda neid käsureas.
  • Probleemide lahendamine kaustade tasemel ümbernimetamise määramisel committide kirjutamisel. Määramine ei toiminud siis, kui alamkausta sisu liigutati repositooriumi juurde.
  • Pakutud on algne teostus ümber kujundatud käsu «git add -i», mis võimaldab lisada muudetud sisu interaktiivses režiimis, ümber kirjutatud Perl’ist C-sse. Samuti käib sarnane ümbertegemine käsu «git add -p» üle.
  • Käsku «git log —graph», mis genereerib ASCII-pildi repositooriumi muudatuste ajaloost, on ümber struktureeritud. Ümbertöötamine on olulisel määral parandanud ja lihtsustanud väljundit, ilma ajaloo struktuuri moonutamata, mis näiteks lahendas probleemi, et joonis ulatus väljapoole terminali rea laiust.
  • Valik «git log —format=..», mis võimaldab muuta väljundi formaati,
    on laiendatud lippude «l/L» toega, et kuvada ainult osa e-posti aadressist, mis on enne märk «@» (näiteks kasulik, kui kõik arendajad kasutavad sama domeeni).
  • Käsku «git submodule» on lisatud alamkäsk «set-url».
  • Testkomplektid on uuendatud seoses üleminekuga
    SHA-2 räsimisalgoritmile SHA-1 asemel.

Allikas: opennet.ru

Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster