Izdaja porazdeljenega sistema za nadzor vira Git 2.25

Na voljo izdaja porazdeljenega sistema za nadzor vira Git 2.25.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 583 spremembe, pripravljenih s sodelovanjem 84 razvijalcev, od tega jih je 32 pri razvoju sodelovalo prvič. Glavni inovacije:

  • Delni kloni, ki omogočajo prenos le dela podatkov in delo z nepopolno kopijo repozitorija, se bližajo stabilizaciji in polni razpoložljivosti. Tipičen klon kopira vse podatke iz repozitorija, vključno z vsako različico vsake datoteke v zgodovini revizij. Pri zelo velikih repozitorijih kopiranje podatkov znatno poveča pasovno širino in prostor na disku, tudi če razvijalca zanima le podmnožica datotek. Za poenostavitev pridobivanja le dela delujočega drevesa izvorne kode nova izdaja uvaja eksperimentalni ukaz »sparse-checkout« in novo možnost »--sparse« za ukaz »clone«.

    Prej se je postopek selektivnega kloniranja izvajal z nalogo filtri za filtriranje nepotrebne vsebine in možnost »--no-checkout« za onemogočanje dopolnjevanja manjkajočih datotek. Po tem je bilo treba pred izvedbo operacije prevzema omogočiti nastavitev core.sparseCheckout in definirati seznam vzorcev poti, ki jih je treba izključiti v datoteki .git/info/sparse-checkout. Na primer, za kloniranje brez blobov in preprečevanje ekstrakcije datotek iz vgnezdenih imenikov globine 2 ali več lahko zaženete:

    git clone --filter=blob:none --no-checkout /vaše/repozitorij/tukaj repozitorij
    $ cd repozitorij
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $git blagajna.

    Nov ukaz »git sparse-checkout« znatno poenostavi potek dela in zmanjša postopek organiziranja dela z nepopolnim repozitorijem na naslednje ukaze:

    git clone --filter=blob:none --sparse /vaše/repozitorij/tukaj repozitorij
    git sparse-checkout set /pot/do/checkout/out

    Ukaz sparse-checkout vam omogoča, da nastavite seznam poti za prevzem (set) brez ročnega konfiguriranja .git/info/sparse-checkout, kot tudi da izpišete trenutni seznam poti (list) in omogočite ali onemogočite delne prevzeme (enable/disable).

    Za optimizacijo dela z zelo velikimi repozitoriji in seznami predlog je "git config core.sparseCheckoutCone", ki omejuje dovoljene vzorce (namesto poljubnih vzorcev .gitignore lahko določite, ali naj se preverijo vse poti in vse datoteke v danem poddirektoriju). Če na primer veliko skladišče vsebuje direktorij "A/B/C" in je vse delo skoncentrirano v poddirektoriju "C", potem bo ukaz "git sparse-checkout set A/B/C" preveril celotno vsebino direktorija "C", iz direktorijev "A" in "B" pa le dele, ki so potrebni za delo s direktorijem "C".

  • Dokumentacija (git rebase -h) je odstranila vse reference na možnost »--preserve-merges«, ki je bila opuščena in bi jo bilo treba nadomestiti z »git rebase --rebase-merges".
  • Za izboljšanje berljivosti sporočil s popravki, poslanih na poštne sezname, je bila dodana možnost »git format-patch --cover-from-description subject«. Ko je določena, ta možnost uporabi prvi odstavek besedila opisa veje kot zadevo spremnega pisma za nabor popravkov.
  • Izvedena je podpora za kombinirano uporabo ukaza »git apply --3way« in nastavitve »merge.conflictStyle« (»git apply« zdaj upošteva slog opisa konflikta iz merge.conflictStyle pri reševanju konflikta po poskusu uporabe datoteke popravka v repozitoriju).
  • Koda za definicijo funkcij, ki se uporablja v operacijah, kot je git diff/grep --show-function/--function-context, je bila razširjena za podporo definiranja meja funkcij v programih, napisanih v Elixir.
  • Ukazom "git add", "git commit", "git reset" in drugim je bila dodana nova možnost "--pathspec-from-file", ki omogoča nalaganje seznama poti iz datoteke ali vhodnega toka, namesto da bi jih naštevali v ukazni vrstici.
  • Odpravljena je bila težava z zaznavanjem preimenovanja na ravni imenika med potrjevanjem. To zaznavanje ni uspelo pri premikanju vsebine podimenika v koren repozitorija.
  • Predlagana je bila predhodna implementacija prepisanega ukaza "git add -i", ki omogoča interaktivno dodajanje spremenjene vsebine, in je bila prepisana iz Perla v C. Podobna prenova ukaza "git add -p" je že v teku.
  • Ukaz »git log --graph«, ki generira ASCII sliko grafa z zgodovino sprememb repozitorija, je bil prenovljen. Ta prenova je znatno izboljšala in poenostavila izhod brez popačenja strukture zgodovine, kar je na primer rešilo težavo, kjer se je graf raztezal čez širino terminalske črte.
  • Možnost »git log --format=..« vam omogoča spreminjanje izhodne oblike,
    Razširjena podpora za zastavice »l/L« za prikaz le dela e-poštnega naslova, navedenega pred simbolom »@« (na primer, uporabno, kadar imajo vsi razvijalci e-poštne naslove v isti domeni).
  • Ukazu »git submodule« je bil dodan podukaz »set-url«.
  • Testni kompleti so bili posodobljeni v pripravah na prehod na
    Zgoščevalni algoritem SHA-2 namesto SHA-1.

Vir: opennet.ru

Kupite zanesljivo gostovanje za strani z DDoS zaščito, VPS VDS strežniki 🔥 Kupite zanesljivo spletno gostovanje z zaščito DDoS, VPS VDS strežniki | ProHoster