Git 2.41 qhov chaw tswj qhov system muaj

Tom qab peb lub hlis ntawm kev txhim kho, qhov kev faib tawm tswj qhov system Git 2.41 tau tso tawm. Git yog ib qho ntawm cov neeg nyiam tshaj plaws, txhim khu kev qha thiab kev ua tau zoo ntawm kev tswj hwm kev tswj hwm, muab cov cuab yeej hloov kho tsis yog kab tawm raws li kev sib txuas thiab kev sib koom ua ke. Txhawm rau kom muaj kev ncaj ncees ntawm keeb kwm thiab kev tiv thaiv kev hloov pauv rov qab, kev cuam tshuam ntawm tag nrho cov keeb kwm yav dhau los yog siv nyob rau hauv txhua qhov kev cog lus; nws tseem muaj peev xwm lees paub tus kheej cov cim npe thiab cog lus nrog cov kos npe digital ntawm cov neeg tsim khoom.

Piv nrog rau qhov kev tso tawm dhau los, cov ntawv tshiab suav nrog 542 kev hloov pauv, npaj nrog kev koom tes ntawm 95 tus tsim tawm, ntawm 29 tau koom nrog kev txhim kho thawj zaug. Main innovations:

  • Txhim kho kev tuav ntawm cov khoom siv tsis tau uas tsis tau hais txog hauv qhov chaw cia khoom (tsis yog hais los ntawm ceg lossis cov cim npe). Cov khoom siv tsis tuaj yeem raug muab tshem tawm los ntawm tus neeg khaws khib nyiab, tab sis nyob twj ywm hauv qhov chaw cia rau ib lub sijhawm ua ntej lawv raug tshem tawm kom tsis txhob muaj kev sib tw. Txhawm rau taug qab lub sijhawm tshwm sim ntawm cov khoom tsis tuaj yeem ncav cuag, nws yog qhov yuav tsum tau txuas cov cim npe rau lawv nrog lub sijhawm hloov pauv ntawm cov khoom zoo sib xws, uas tsis tso cai rau khaws cia rau hauv ib pob ntawv uas txhua yam khoom muaj lub sijhawm hloov pauv. Yav dhau los, txhua yam khoom siv tsis tau raug muab khaws cia rau hauv ib qho ntaub ntawv sib cais, uas ua rau muaj teeb meem thaum muaj ntau yam khoom tshiab uas tsis tuaj yeem ncav cuag uas tseem tsis tau tsim nyog rau kev tshem tawm. Nyob rau hauv qhov kev tso tawm tshiab, "cruft packs" mechanism yog siv los ntawm lub neej ntawd rau kev ntim cov khoom tsis tuaj yeem, uas tso cai rau koj khaws tag nrho cov khoom tsis tuaj yeem nkag tau rau hauv ib pob ntawv, thiab cov ntaub ntawv ntawm lub sijhawm hloov kho ntawm txhua yam khoom tau cuam tshuam rau hauv ib lub rooj sib cais, khaws cia. nyob rau hauv ib cov ntaub ntawv nrog lub extension ".mtimes" thiab txuas siv cov ntaub ntawv index nrog cov extension ".idx".
    Git 2.41 qhov chaw tswj qhov system muaj
  • Kev tuav ib qho kev ntsuas rov qab ntawm disk rau cov ntaub ntawv pob yog qhib los ntawm lub neej ntawd. Thaum kuaj ntawm torvalds / linux repository, kev siv qhov ntsuas rov qab ua rau nws muaj peev xwm ua kom muaj peev xwm siv tau "git thawb" kev ua haujlwm los ntawm 1.49 zaug, thiab cov haujlwm yooj yim xws li suav qhov loj ntawm ib qho khoom siv "git cat- file β€”batch='%(objectsize:disk)' "77 zaug. Cov ntaub ntawv (β€œ.rev”) nrog qhov ntsuas rov qab yuav muab khaws cia rau hauv lub chaw cia khoom hauv β€œ.git/objects/pack” directory.

    Nco qab tias Git khaws tag nrho cov ntaub ntawv nyob rau hauv daim ntawv ntawm cov khoom, uas nyob rau hauv nyias cov ntaub ntawv. Txhawm rau ua kom muaj txiaj ntsig ntawm kev ua haujlwm nrog lub chaw cia khoom, cov khoom tau muab tso rau hauv cov ntaub ntawv ntim ntxiv, uas cov ntaub ntawv tau nthuav tawm hauv daim ntawv ntawm cov kwj ntawm cov khoom tom qab ib leeg (ib hom zoo sib xws yog siv thaum hloov khoom nrog git fetch thiab git thawb. cov lus txib). Rau txhua cov ntaub ntawv pob, cov ntaub ntawv txheeb xyuas (.idx) yog tsim, uas tso cai rau koj los txiav txim siab sai heev hauv cov ntaub ntawv pob uas cov khoom muab khaws cia siv cov khoom txheeb xyuas.

    Qhov rov qab Performance index muaj nyob rau hauv qhov kev tso tawm tshiab yog tsom rau kev ua kom zoo ntawm cov txheej txheem ntawm kev txiav txim siab cov khoom txheeb xyuas los ntawm cov ntaub ntawv hais txog kev tso cov khoom hauv cov ntaub ntawv pob. Yav dhau los, xws li hloov dua siab tshiab tau ua nyob rau hauv yoov thaum parsing cov ntaub ntawv pob thiab tsuas yog khaws cia hauv lub cim xeeb, uas tsis tso cai rau cov indexes zoo sib xws yuav tsum tau rov qab siv dua thiab yuam kom qhov Performance index yuav tsum tau generated txhua zaus. Kev ua haujlwm ntawm kev tsim qhov ntsuas tau nqis los tsim cov khoom sib txuas ntawm cov khoom-txoj haujlwm ua khub thiab txheeb nws los ntawm txoj haujlwm, uas tuaj yeem siv sijhawm ntev rau cov ntaub ntawv loj.

    Piv txwv li, kev ua haujlwm los tso saib cov ntsiab lus ntawm cov khoom, uas siv qhov ntsuas ncaj qha, yog 62 lub sij hawm sai dua li kev ua haujlwm los tso saib qhov loj ntawm cov khoom, uas cov ntaub ntawv ntawm qhov chaw-rau-cov khoom tsis tau ntsuas. Tom qab siv qhov ntsuas rov qab, cov haujlwm no tau pib siv sijhawm li qub. Rov qab indexes tseem tso cai rau koj kom ceev cov khoom xa tawm haujlwm thaum ua haujlwm nqa thiab thawb cov lus txib los ntawm kev xa ncaj qha cov ntaub ntawv npaj tau los ntawm disk.

    Git 2.41 qhov chaw tswj qhov system muaj

  • Cov txheej txheem "tus neeg pab lees paub", siv los hloov cov ntaub ntawv pov thawj thaum nkag mus rau cov chaw khaws cia uas muaj kev txwv tsis pub nkag, tau ntxiv kev txhawb nqa rau dhau WWW-Authenticate headers ntawm tus neeg tuav ntaub ntawv pov thawj thiab cov kev pabcuam uas ua pov thawj tau ua tiav. Kev them nyiaj yug rau WWW-Authenticate header tso cai rau koj kom dhau OAuth cov kev txwv tsis pub dhau rau kev sib cais ntau dua ntawm cov neeg siv nkag mus rau cov chaw khaws cia thiab kev txwv ntawm cov peev txheej muaj rau kev thov.
  • Ib qho kev xaiv formatting "% (ua ntej-tom qab: )" tau ntxiv rau cov lus txib rau-txhua-ref, uas tso cai rau koj kom tau txais cov ntaub ntawv tam sim ntawd txog tus naj npawb ntawm kev cog lus tam sim no lossis tsis nyob hauv qee ceg, txheeb ze rau lwm tus. ceg (ntau npaum li cas ib ceg nyob tom qab lossis ua ntej ntawm lwm qhov ntawm kev cog lus). Yav dhau los, kom tau txais cov ntaub ntawv zoo li no, koj yuav tsum tau khiav ob qho lus txib: "git rev-list - suav lub ntsiab..my-feature" kom tau txais tus naj npawb ntawm kev cog lus tshwj xeeb rau ceg thiab "git rev-list - suav kuv-feature ..main” kom tau txais tus lej ploj lawm. Tam sim no cov kev suav no tuaj yeem raug txo mus rau ib qho kev hais kom ua, uas yooj yim rau kev sau ntawv ntawm cov neeg ua haujlwm thiab txo lub sijhawm ua tiav. Piv txwv li, los qhia cov ceg ntoo uas tsis tau muab sib koom ua ke thiab ntsuas seb lawv puas nyob tom qab lossis ua ntej ntawm ceg tseem ceeb, koj tuaj yeem siv ib-liner: $ git rau-txhua-ref -no-merged=origin/HEAD \ β€”format ='%(refname:short) %(ahead-behind :origin/HEAD)' \refs/heads/tb/ | kem -t tb/cruft-extra-tips 2 96 tb/for-each-ref-exclude 16 96 tb/roaring-bitmaps 47 3 es tsis txhob siv tsab ntawv yav dhau los, uas khiav 17 zaus qeeb: $ git rau-txhua-ref β€” format='%(refname:short)' β€”no-merged=origin/HEAD \ refs/heads/tb | thaum nyeem ref ua ntej = "$(git rev-list -count origin/HEAD..$ref)" qab="$(git rev-list -count $ref..origin/HEAD)" printf "%s %d %d\n" "$ref" "$ahead" "$behind" ua tiav | kem -t tb/cruft-extra-tips 2 96 tb/for-each-refβ€”exclude 16 96 tb/roaring-bitmaps 47 3
  • Qhov kev xaiv "-porcelain" tau ntxiv rau "git fetch" hais kom ua, thaum tau teev tseg, cov zis tau tsim tawm hauv hom " " , nyeem tsawg dua, tab sis yooj yim dua rau kev txheeb xyuas cov ntawv sau.
  • Ntxiv qhov "fetch.hideRefs" teeb tsa, uas tso cai rau koj kom ceev "git fetch" kev ua haujlwm los ntawm kev zais qee cov ntaub ntawv hauv zos repository ntawm theem ntawm kev kuaj xyuas tias tus neeg rau zaub mov tau xa tag nrho cov khoom, uas txuag sijhawm los ntawm txwv qhov kev kuaj xyuas tsuas yog rau cov servers uas cov ntaub ntawv tau txais ncaj qha. Piv txwv li, thaum khiav qhov kev xeem ntawm ib qho system nrog repositories uas muaj ib tug loj tus naj npawb ntawm tracked sab nraud txuas, tsis suav tag nrho cov txuas tshwj tsis yog cov uas hais rau lub hom phiaj neeg rau zaub mov $ tej thaj chaw deb txo qhov kev tua ntawm git fetch ua hauj lwm los ntawm 20 feeb mus rau 30 vib nas this. $ git -c fetch.hideRefs=refs -c fetch.hideRefs=!refs/remotes/$remote \ nqa $remote
  • Cov lus txib "git fsck" muab lub peev xwm los kuaj xyuas kev noj nyiaj txiag, kev ua raws li kev txheeb xyuas, thiab qhov tseeb ntawm qhov tseem ceeb hauv kev nkag tau yooj yim bitmaps thiab thim rov qab indexes.
  • Cov lus txib "git clone --local" tam sim no qhia txog qhov yuam kev thaum sim luam tawm los ntawm qhov chaw cia khoom uas muaj cov ntawv sib txuas hauv $GIT_DIR.

Tau qhov twg los: opennet.ru

Ntxiv ib saib