Git 2.37 qhov chaw tswj kev tso tawm

Kev tso tawm ntawm qhov kev faib tawm tswj qhov system Git 2.37 tau tshaj 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 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, 395 qhov kev hloov pauv tau raug coj mus rau hauv qhov tshiab, npaj nrog kev koom tes ntawm 75 tus tsim tawm, ntawm 20 tau koom nrog kev txhim kho thawj zaug. Main innovations:

  • Cov txheej txheem ntawm ib feem indexes (sparse index), tsuas yog ib feem ntawm lub repository, tau raug coj los npaj rau kev siv dav. Ib nrab indexes tuaj yeem txhim kho kev ua tau zoo thiab txuag chaw hauv cov chaw khaws cia uas ua haujlwm ib nrab cloning (sparse-checkout) lossis ua haujlwm nrog cov ntawv luam tsis tiav ntawm lub chaw khaws cia. Qhov kev tso tawm tshiab ua kom tiav kev sib koom ua ke ntawm ib nrab indexes rau hauv git qhia, git sparse-checkout, thiab git stash commands. Qhov kev pom zoo tshaj plaws tau txais txiaj ntsig los ntawm kev siv ib feem indexes pom nrog "git stash" hais kom ua, uas tau pom 80% nce hauv kev ua tiav nrawm hauv qee qhov xwm txheej.
  • Ib qho tshiab "cruft packs" mechanism tau siv los ntim cov khoom tsis tuaj yeem uas tsis raug xa mus rau hauv qhov chaw cia khoom (tsis hais txog cov 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 muab cov cim npe rau lawv nrog lub sijhawm hloov 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, txuag txhua yam khoom hauv ib cov ntaub ntawv sib cais ua rau muaj teeb meem thaum muaj ntau cov khoom tshiab, tsis tuaj yeem ncav cuag tau uas tseem tsis tau tsim nyog rau kev tshem tawm. Lub tswv yim "cruft packs" mechanism tso cai rau koj khaws tag nrho cov khoom tsis tuaj yeem nkag mus rau hauv ib pob ntawv, thiab cuam tshuam cov ntaub ntawv ntawm lub sijhawm hloov kho ntawm txhua yam khoom hauv ib lub rooj cais khaws cia hauv cov ntaub ntawv nrog ".mtimes" txuas ntxiv.
  • Rau Windows thiab macOS, muaj cov txheej txheem tsim los rau kev taug qab cov kev hloov pauv ntawm cov ntaub ntawv kaw lus, tso cai rau koj kom tsis txhob rov ua dua tag nrho cov npe ua haujlwm thaum ua haujlwm xws li "git xwm txheej". Yav dhau los, txhawm rau taug qab cov kev hloov pauv, cov khoom siv sab nraud rau kev taug qab cov kev hloov pauv hauv FS, xws li Watchman, tuaj yeem txuas nrog cov hooks, tab sis qhov no yuav tsum tau teeb tsa cov kev pabcuam ntxiv thiab teeb tsa. Tam sim no cov kev ua haujlwm tau teev tseg yog tsim-hauv thiab tuaj yeem qhib nrog cov lus txib "git config core.fsmonitor tseeb".
  • Hauv "git sparse-checkout" hais kom ua, kev txhawb nqa rau lwm txoj hauv kev "-cone" hom, txoj kev ntawm kev txhais cov qauv rau ib feem cloning, tau tshaj tawm tias tsis siv, uas tso cai, thaum txiav txim siab ib feem ntawm qhov chaw cia khoom uas raug rau kev ua haujlwm cloning, sau ib tus neeg cov ntaub ntawv siv ".gitignore" syntax, uas tsis tso cai siv rau kev ua kom zoo dua ib feem indexes.
  • Ua kom yooj yim dua hauv kev teeb tsa fsync() hu rau flush hloov mus rau disk. Kev them nyiaj yug rau "batch" synchronization lub tswv yim tau ntxiv rau "core.fsyncMethod" parameter, uas tso cai rau kev ua haujlwm nrawm thaum sau cov ntaub ntawv ntau tus neeg los ntawm kev sib sau cov kev hloov pauv hauv cov ntawv sau rov qab, uas yog rov pib dua los ntawm ib qho fsync() hu. Qhov kev sim, uas ua rau 500 cov ntaub ntawv raug ntxiv siv "git add" hais kom ua tiav hauv 0.15 vib nas this thaum lub hom tshiab tau qhib, thaum hu fsync() siv 1.88 vib nas this rau txhua cov ntaub ntawv, thiab tsis siv fsync - 0.06 vib nas this.
  • Ceg traversal commands zoo li "git log" thiab "git rev-list" tam sim no muaj kev xaiv "-txij li-as-filter = X" uas tso cai rau koj lim tawm cov ntaub ntawv hais txog kev cog lus uas laus dua "X". Tsis zoo li "-txij li thaum" kev xaiv, cov lus txib tshiab yog siv los ua lub lim dej uas tsis tso tseg kev tshawb fawb tom qab thawj zaug ua txhaum loj dua li lub sijhawm teev tseg.
  • Hauv "git tej thaj chaw deb" hais kom ua, thaum qhia txog tus chij "-v", cov ntaub ntawv hais txog ib feem clones ntawm qhov chaw cia khoom raug tso tawm.
  • Ntxiv "transfer.credentialsInUrl" teeb tsa, uas tuaj yeem coj qhov tseem ceeb "ceeb toom", "tuag" thiab "tso cai". Yog hais tias teev nyob rau hauv parameter "chaw taws teeb. .url" plaintext credentials, sim ua ib tug "fetch" los yog "push" ua hauj lwm yuav ua tsis tau tejyam yog hais tias lub "transfer.credentialsInUrl" teem rau "tuag", los yog ceeb toom yog teem rau "warn".
  • Los ntawm lub neej ntawd, qhov kev siv tshiab ntawm kev sib tham sib hom ntawm "git ntxiv -i" hais kom ua, rov sau dua los ntawm Perl rau C, tau qhib.

Tau qhov twg los: opennet.ru

Ntxiv ib saib