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

Disponibbli rilaxx ta' sistema distribwita ta' kontroll tas-sors git 2.26.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 504 tibdil, ippreparat bil-parteċipazzjoni ta' 64 żviluppatur, li minnhom 12 ħadu sehem fl-iżvilupp għall-ewwel darba. Il-prinċipali innovazzjonijiet:

  • Il-default inbidel għal it-tieni verżjoni Protokoll ta 'komunikazzjoni Git, li jintuża meta klijent jgħaqqad mill-bogħod ma' server Git. It-tieni verżjoni tal-protokoll hija notevoli biex tipprovdi l-abbiltà li tiffiltra fergħat u tikketti fuq in-naħa tas-server, u tirritorna lista mqassra ta 'links lill-klijent. Preċedentement, kwalunkwe kmand tal-ġibda dejjem jibgħat lill-klijent il-lista sħiħa tar-referenzi fir-repożitorju kollu, anke meta l-klijent kien qed jaġġorna biss fergħa waħda jew jiċċekkja li l-kopja tiegħu tar-repożitorju kienet aġġornata. Innovazzjoni notevoli oħra hija l-abbiltà li żżid kapaċitajiet ġodda mal-protokoll hekk kif funzjonalità ġdida ssir disponibbli fil-kitt tal-għodda. Il-kodiċi tal-klijent jibqa 'kompatibbli mal-protokoll l-antik u jista' jkompli jaħdem kemm ma 'servers ġodda kif ukoll qodma, awtomatikament jaqa' lura għall-ewwel verżjoni jekk is-server ma jappoġġjax it-tieni.
  • L-għażla "-show-scope" ġiet miżjuda mal-kmand "git config", li tagħmilha aktar faċli li jiġi identifikat il-post fejn ċerti settings huma definiti. Git jippermettilek tiddefinixxi settings f'postijiet differenti: fir-repożitorju (.git/info/config), fid-direttorju tal-utent (~/.gitconfig), fil-fajl tal-konfigurazzjoni tas-sistema kollha (/etc/gitconfig), u permezz tal-kmand għażliet tal-linja u varjabbli ambjentali. Meta tesegwixxi "git config" huwa pjuttost diffiċli li tifhem fejn eżattament l-issettjar mixtieq huwa definit. Biex issolvi din il-problema, l-għażla "--show-origin" kienet disponibbli, iżda turi biss il-mogħdija għall-fajl li fih l-issettjar huwa definit, li huwa utli jekk għandek il-ħsieb li teditja l-fajl, iżda ma tgħinx jekk inti jeħtieġ li tibdel il-valur permezz ta' "git config" billi tuża l-għażliet "--system", "--global" jew "-local". L-għażla l-ġdida "--show-scope" turi l-kuntest tad-definizzjoni varjabbli u tista 'tintuża flimkien ma' -show-origin:

    $ git --list --show-scope --show-origin
    fajl globali:/home/user/.gitconfig diff.interhunkcontext=1
    fajl globali:/home/user/.gitconfig push.default=kurrent
    […] fajl lokali:.git/config branch.master.remote=origin
    fajl lokali:.git/config branch.master.merge=refs/heads/master

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

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

  • Fis-settings vinkolanti kredenzjali L-użu ta' maskri fl-URLs huwa permess. Kwalunkwe settings u kredenzjali HTTP f'Git jistgħu jiġu stabbiliti kemm għall-konnessjonijiet kollha (http.extraHeader, credential.helper) kif ukoll għal konnessjonijiet ibbażati fuq URL (credential.https://example.com.helper, credential.https: //example. com.helper). Sa issa, wildcards bħal *.example.com kienu permessi biss għall-issettjar HTTP, iżda ma kinux appoġġjati għall-irbit tal-kredenzjali. F'Git 2.26, dawn id-differenzi huma eliminati u, pereżempju, biex torbot username mas-sottodominji kollha issa tista' tispeċifika:

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

    username = ttaylorr

  • L-espansjoni tal-appoġġ sperimentali għall-klonazzjoni parzjali (kloni parzjali) tkompli, li tippermettilek tittrasferixxi biss parti mid-dejta u taħdem b'kopja mhux kompluta tar-repożitorju. Ir-rilaxx il-ġdid iżid kmand ġdid "git sparse-checkout add", li jippermettilek li żżid direttorji individwali biex tapplika l-operazzjoni "checkout" għal parti biss mis-siġra tax-xogħol, minflok ma telenka dawn id-direttorji kollha f'daqqa permezz tal-kmand "git sett sparse-checkout" (tista 'żżid direttorju wieħed wieħed, mingħajr ma terġa' tispeċifika l-lista kollha kull darba).
    Pereżempju, biex tikklona repożitorju git/git mingħajr ma tikkommetti blobs, tillimita l-checkout biss għad-direttorju tal-għeruq tal-kopja tax-xogħol, u timmarka separatament il-checkout għad-direttorji "t" u "Dokumentazzjoni", tista' tispeċifika:

    $ git clone --filter=blob:xejn --sparse [protett bl-email]:git/git.git

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

    $ git sparse-checkout żid t
    ....
    $ git sparse-checkout add Dokumentazzjoni
    ....
    Lista ta' $ git sparse-checkout
    dokumentazzjoni
    t

  • Il-prestazzjoni tal-kmand "git grep", użata biex tfittex kemm il-kontenut attwali tar-repożitorju kif ukoll reviżjonijiet storiċi, tjiebet b'mod sinifikanti. Biex titħaffef it-tfittxija, kien possibbli li jiġi skennjat il-kontenut tas-siġra tax-xogħol bl-użu ta 'ħjut multipli ("git grep -threads"), iżda t-tfittxija f'reviżjonijiet storiċi kienet b'ħajt wieħed. Issa din il-limitazzjoni tneħħiet bl-implimentazzjoni tal-kapaċità li jiġu parallelizzati l-operazzjonijiet tal-qari mill-ħażna tal-oġġett. B'mod awtomatiku, in-numru ta 'ħjut huwa ssettjat ugwali għan-numru ta' qlub tas-CPU, li f'ħafna każijiet issa ma jeħtieġx issettjar espliċitu tal-għażla "-threads".
  • Appoġġ miżjud għall-awtokompletazzjoni ta 'input ta' sottokmandi, mogħdijiet, links u argumenti oħra tal-kmand "git worktree", li jippermettilek taħdem b'diversi kopji ta 'ħidma tar-repożitorju.
  • Appoġġ miżjud għal kuluri jleqqu li għandhom sekwenzi ta 'ħarba ANSI. Pereżempju, fis-settings għall-kuluri jenfasizzaw "git config -color" jew "git diff -color-moved" tista 'tispeċifika "%C(brightblue)" permezz tal-għażla "--format" għal blu qawwi.
  • Miżjud verżjoni ġdida tal-iskrittura fsmonitor-għassies, jipprovdu integrazzjoni mal-mekkaniżmu Facebook Watchman biex tħaffef it-traċċar tal-bidliet fil-fajl u d-dehra ta 'fajls ġodda. Wara l-aġġornament git huwa meħtieġ ibdel ganċ fir-repożitorju.
  • Żieda ottimizzazzjonijiet biex iħaffu kloni parzjali meta tuża bitmaps
    (makkinarju bitmap) biex tiġi evitata tfittxija sħiħa tal-oġġetti kollha meta tiffiltra l-output. L-iċċekkjar għal blobs (—filter=blob:none u —filter=blob:limit=n) waqt klonazzjoni parzjali issa qed isir
    b'mod sinifikanti aktar mgħaġġel. GitHub ħabbar irqajja b'dawn l-ottimizzazzjonijiet u appoġġ sperimentali għall-klonazzjoni parzjali.

  • Il-kmand "git rebase" ġie mċaqlaq għal backend differenti, bl-użu tal-mekkaniżmu default 'merge' (li kien użat qabel għal "rebase -i") minflok 'patch+apply'. Il-backends ivarjaw f'xi modi żgħar, pereżempju, wara li kompliet operazzjoni wara li ssolvi kunflitt (git rebase --continue), il-backend il-ġdid joffri li jeditja l-messaġġ tal-kommit, filwaqt li l-antik sempliċement uża l-messaġġ il-qadim. Biex terġa 'lura għall-imġieba l-antika, tista' tuża l-għażla "--apply" jew issettja l-varjabbli tal-konfigurazzjoni "rebase.backend" għal "apply".
  • Eżempju ta' handler għall-parametri ta' awtentikazzjoni speċifikati permezz ta' .netrc ġie mnaqqas għal forma adattata għall-użu barra mill-kaxxa.
  • Żid l-issettjar gpg.minTrustLevel biex jiġi stabbilit il-livell ta’ fiduċja minimu għal diversi elementi li jwettqu verifika tal-firma diġitali.
  • Miżjud "--pathspec-from-file" għażla għal "git rm" u "git stash".
  • It-titjib tas-suites tat-test kompla bi tħejjija għat-tranżizzjoni għall-algoritmu tal-hashing SHA-2 minflok SHA-1.

Sors: opennet.ru

Żid kumment