Rilaxx tas-sistema ta' kontroll tas-sors distribwit Git 2.25

Disponibbli rilaxx ta' sistema distribwita ta' kontroll tas-sors git 2.25.0. Git hija waħda mis-sistemi ta 'kontroll tal-verżjoni l-aktar popolari, affidabbli u ta' prestazzjoni għolja, li tipprovdi għodod ta 'żvilupp mhux lineari flessibbli bbażati fuq fergħat u għaqda. Biex tiġi żgurata l-integrità tal-istorja u r-reżistenza għal bidliet retroattivi, f'kull impenn jintuża hashing impliċitu tal-istorja preċedenti kollha; huwa wkoll possibbli li jiġu ċertifikati tikketti individwali u impenji b'firem diġitali tal-iżviluppaturi.

Meta mqabbel mar-rilaxx ta 'qabel, il-verżjoni l-ġdida kienet tinkludi 583 tibdil, ippreparat bil-parteċipazzjoni ta' 84 żviluppatur, li minnhom 32 ħadu sehem fl-iżvilupp għall-ewwel darba. Il-prinċipali innovazzjonijiet:

  • Il-possibbiltà ta 'klonazzjoni parzjali qed toqrob l-istabbilizzazzjoni u r-rieda sħiħa, li tippermettilek tittrasferixxi biss parti mid-dejta u taħdem b'kopja mhux kompluta tar-repożitorju. Klon tipiku jikkopja d-dejta kollha mir-repożitorju, inkluż kull verżjoni ta’ kull fajl fl-istorja tal-bidliet. Għal repożitorji kbar ħafna, l-ikkupjar tad-dejta jirriżulta f'żieda sinifikanti fit-traffiku u l-ispazju tad-disk, anke jekk l-iżviluppatur ikun interessat biss f'subsett tal-fajls. Biex tagħmilha aktar faċli li tiġi rkuprata biss parti mis-siġra tas-sors tax-xogħol, ir-rilaxx il-ġdid jintroduċi kmand sperimentali "sparse-checkout" u għażla ġdida "--sparse" għall-kmand "klonu".

    Preċedentement, il-proċess ta 'klonazzjoni selettiva kien imwettaq permezz tal-kompitu filtri biex tiffiltra l-kontenut mhux meħtieġ u l-għażla "—no-checkout" biex tiddiżattiva l-mili tal-fajls neqsin. Wara dan, qabel ma twettaq l-operazzjoni ta 'checkout, kien meħtieġ li l-issettjar tal-core.sparseCheckout jiġi attivat u tiddefinixxi lista ta' mudelli ta 'passaġġ esklużi fil-fajl .git/info/sparse-checkout. Pereżempju, biex tikklona mingħajr blobs u tevita li fajls jiġu estratti minn subdirettorji ta' fond 2 jew aktar, tista' tmexxi:

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

    Il-kmand il-ġdid "git sparse-checkout" jissimplifika bil-kbir ix-xogħol u jnaqqas il-proċess ta 'organizzazzjoni tax-xogħol b'repożitorju mhux komplut għall-kmandi li ġejjin:

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

    Il-kmand ta' sparse-checkout jippermettilek li tissettja lista ta' mogħdijiet għal checkout (sett) mingħajr ma tikkonfigura manwalment .git/info/sparse-checkout, kif ukoll turi l-lista attwali ta' mogħdijiet (lista) u tippermetti jew tiddiżattiva checkouts parzjali (jippermettiet / jiskonnettja).

    Biex ttejjeb ix-xogħol b'repożitorji kbar ħafna u listi ta' mudelli, il-"git config core.sparseCheckoutCone", li jillimita mudelli permessi (minflok mudelli .gitignore arbitrarji, tista 'tispeċifika jekk il-mogħdijiet kollha u l-fajls kollha f'subdirettorju partikolari għandhomx jiġu ċċekkjati). Pereżempju, jekk repożitorju kbir ikollu direttorju "A/B/C" u x-xogħol kollu huwa kkonċentrat fis-subdirettorju "C", allura meta tattiva l-mod sparseCheckoutCone, il-kmand "git sparse-checkout set A/B/ C" se estratti l-kontenut kollu ta '"C", iżda minn "A" u "B" se estratti biss il-partijiet meħtieġa biex taħdem ma "C".

  • Mid-dokumentazzjoni ("git rebase -h"), ir-referenzi kollha għall-għażla "--preserve-merges" tneħħew, li ġiet deprecata u għandha tintuża minflok biex jemigra sett ta 'commits.git rebase --rebase-merges".
  • Biex tittejjeb il-leġibbiltà tal-messaġġi b’garża mibgħuta lil-listi tal-posta, l-għażla “git format-patch —cover-from-description subject” ġiet miżjuda, meta speċifikat, l-ewwel paragrafu mit-test tad-deskrizzjoni tal-fergħa jintuża bħala s-suġġett tal- ittra ta' akkumpanjament għal sett ta' garża.
  • Appoġġ implimentat għall-użu ikkombinat tal-kmand “git apply -3way” u l-issettjar “merge.conflictStyle” (“git apply” issa jqis l-istil tad-deskrizzjoni tal-kunflitt minn merge.conflictStyle meta jkun meħtieġ li jiġi solvut il-kunflitt wara li ppruvat). biex tapplika fajl tal-garża għar-repożitorju).
  • Il-kodiċi tad-definizzjoni tal-funzjoni użat f'operazzjonijiet bħal "git diff/grep --show-function/-function-context" ġie estiż biex jappoġġja d-definizzjoni tal-konfini tal-funzjoni fi programmi tal-lingwa Elixir.
  • Għażla ġdida ġiet miżjuda għal "git add", "git commit", "git reset" u kmandi oħra - "-pathspec-from-file", li jagħmilha possibbli li titgħabba lista ta' mogħdijiet minn fajl jew fluss ta' input , minflok jelenkahom fuq il-linja tal-kmand.
  • Il-problema tas-sejbien ta' ismijiet mill-ġdid fil-livell tad-direttorju meta tikteb kommessi ġiet solvuta. Id-definizzjoni ma ħadmitx jekk il-kontenut ta 'sottodirettorju tmexxa għall-għerq tar-repożitorju.
  • Ġiet proposta implimentazzjoni inizjali tal-kmand imfassal mill-ġdid "git add -i", li jippermettilek iżżid kontenut mibdul b'mod interattiv, miktub mill-ġdid minn Perl għal C. Qed isir xogħol mill-ġdid simili tal-kmand "git add -p".
  • Il-kmand "git log –graph" ġie rifactored, li jiġġenera immaġni ASCII ta 'graff bl-istorja tal-bidliet fir-repożitorju. Ix-xogħol mill-ġdid għamilha possibbli li tittejjeb u tissimplifika b'mod sinifikanti l-output mingħajr ma tgħawweġ l-istruttura tal-istorja, li, pereżempju, solviet il-problema bl-istampa li testendi lil hinn mill-wisa 'tal-linja terminali.
  • L-għażla "git log --format=.." tippermettilek tibdel il-format tal-output,
    estiż b'appoġġ għall-bnadar "l/L" biex juri biss il-parti tal-indirizz elettroniku indikat qabel is-simbolu "@" (per eżempju, utli meta l-iżviluppaturi kollha jkollhom l-emails kollha fl-istess dominju).

  • Miżjud sottokmand "set-url" mal-kmand "git submodule".
  • Kitts tat-test ġew aġġornati bi tħejjija għat-tranżizzjoni lejn
    algoritmu tal-hashing SHA-2 minflok SHA-1.

Sors: opennet.ru

Żid kumment