Tso tawm qhov kev faib tawm tswj qhov system Git 2.31

Qhov kev faib tawm tswj qhov system Git 2.31 yog tam sim no muaj. 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 uas tsis yog-linear txhim kho raws li cov ceg thiab kev sib koom ua ke. Txhawm rau kom muaj kev ncaj ncees ntawm keeb kwm thiab kev tiv thaiv rau cov kev hloov pauv rov qab, kev cuam tshuam ntawm tag nrho cov keeb kwm yav dhau los yog siv hauv txhua qhov kev cog lus; nws tseem muaj peev xwm lees paub cov cim npe ntawm tus kheej thiab cog lus nrog cov kos npe digital ntawm cov tsim tawm.

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

  • Ntxiv cov lus txib "git maintenance", uas tso cai rau koj ua haujlwm raws sijhawm ntawm cov tshuab uas tsis txhawb nqa cron. Piv txwv li, siv cov lus txib tshiab, koj tuaj yeem npaj cov txheej txheem ntim khoom khaws cia kom ua haujlwm ib ntus, yog li koj tsis tas yuav tos kom txog thaum lub chaw khaws cia kaw thaum ntim khoom tau ua tiav thaum khiav ntau yam lus txib. Cov lus txib "git txij nkawm" tso cai rau koj los ua kom zoo dua thiab ua haujlwm kom tswj tau cov qauv zoo ntawm cov chaw khaws cia hauv keeb kwm yav dhau, yam tsis muaj kev cuam tshuam kev sib tham - ib zaug ib teev, ua haujlwm tau ua tiav los rub tawm cov khoom tshiab los ntawm cov chaw khaws cia chaw taws teeb thiab hloov kho. cov ntaub ntawv nrog daim duab cog lus, thiab cov txheej txheem ntawm kev ntim cov chaw cia khoom pib txhua hmo.
  • Ntxiv kev txhawb nqa rau kev tswj xyuas qhov ntsuas rov qab (revindex) ntawm disk rau cov ntaub ntawv pob. 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. Taw qhia hauv Git 2.31, qhov rov qab Performance index (.rev) yog tsom rau kev ua kom zoo ntawm cov txheej txheem ntawm kev txiav txim siab tus cim khoom los ntawm cov ntaub ntawv hais txog qhov chaw ntawm ib qho 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 thaum ua haujlwm nqa thiab thawb cov lus txib los ntawm kev xa ncaj qha cov ntaub ntawv npaj tau los ntawm disk. Los ntawm lub neej ntawd, thim rov qab indexes tsis tsim; los tsim lawv, koj yuav tsum tau ua kom "git config pack.writeReverseIndex tseeb" teeb tsa thiab tom qab ntawd ntim cov chaw cia khoom nrog "git repack -Ad" hais kom ua.

  • Ntxiv kev ua tau zoo ntawm kev ua tau zoo raws li qhov tshwm sim hauv daim ntawv cog lus-graph cov ntaub ntawv, siv los ua kom zoo rau kev nkag mus rau cov ntaub ntawv hais txog kev cog lus, cov ntaub ntawv tshiab txog kev cog lus tsim tus lej, uas tuaj yeem siv los ua kom muaj kev ua haujlwm ntxiv nrog kev cog lus.
  • Ntxiv cov kev xaiv rau redefining lub npe ntawm lub ntsiab ceg siv los ntawm lub neej ntawd nyob rau hauv tshiab repositories (init.defaultBranch chaw). Thaum nkag mus rau sab nraud repositories, git sim xyuas cov ceg taw qhia los ntawm HEAD, i.e. Yog hais tias tus neeg rau zaub mov sab nraud siv "main" ceg los ntawm lub neej ntawd, ces "git clone" kev ua haujlwm yuav sim xyuas "main" hauv zos. Git 2.31 tam sim no txhawb nqa hom kev rho tawm no rau cov chaw khaws cia khoob. Piv txwv li, thaum cloning ib qhov chaw cia tshiab hauv zos ua ntej ntxiv thawj thaj ua rau nws, cov ntawv luam hauv zos tam sim no yuav muaj lub npe ntawm cov khoom siv hluav taws xob nyob rau sab nraud.
  • Ntxiv qhov kev xaiv --disk-siv rau "git rev-list" hais kom muab cov ntsiab lus ntawm qhov loj ntawm cov khoom.
  • Hauv kev cia siab tias qhov kev hloov pauv yav tom ntej rau kev sib koom ua ke backend, rename nrhiav tau qhov zoo tshaj plaws.
  • Kev them nyiaj yug rau lub tsev qiv ntawv qub PCRE1 tau raug txiav tawm.
  • Nws muaj peev xwm txwv tsis pub siv cov txuas luv luv, tsis hais tus hashing algorithm. Qhov kev txwv no tau qhib los ntawm kev muab tus nqi "tsis muaj" rau core.abbrev parameter.
  • Ntxiv "--path-format = (absolute | txheeb ze)" kev xaiv rau "git rev-parse" hais kom meej meej seb puas txheeb ze lossis qhov tseeb yuav tsum tau tso tawm.
  • Bash ua tiav cov ntawv ua kom yooj yim ntxiv cov cai ua tiav rau koj tus kheej "git" cov lus txib.
  • Ntxiv qhov kev xaiv --stdin rau "git bundle" hais kom nyeem cov ntaub ntawv los ntawm tus qauv nkag kwj.
  • Ib qho kev xaiv tshiab "--diff-merges=" tau ntxiv rau "git log" hais kom ua.
  • Ntxiv "--deduplicatecan" kev xaiv rau "git ls-files" hais kom ua kom tshem tawm cov khoom tawm.
  • Ntxiv qhov ncauj qhov ntswg tshiab kom tsis suav nrog ntau qhov kev cog lus - β€œ^!” thiab "^-".
  • Ntxiv "--sab laug nkaus xwb" thiab "--txoj cai nkaus xwb" kev xaiv rau "git range-diff" hais kom qhia tsuas yog ib sab ntawm qhov sib piv.
  • Ntxiv --skip-to=" thiab "--rotate-to=" xaiv rau "git diff" thiab "git log" cov lus txib kom hla lossis txav mus rau qhov kawg ntawm txoj kev pib.
  • Ntxiv "--skip-to=" kev xaiv rau "git difftool" hais kom rov pib qhov kev cuam tshuam cuam tshuam los ntawm txoj kev arbitrary.
  • Txoj Cai-ntawm-kev coj ua, uas txhais cov hauv paus ntsiab lus los daws qhov teeb meem tsis sib haum xeeb ntawm cov neeg tsim tawm, tau hloov kho rau version 2.0 (yav dhau los version 1.4 tau siv).

    Tau qhov twg los: opennet.ru

Ntxiv ib saib