sapling/mercurial
Kostia Balytskyi 45a8ff9b73 auditor: add a config option to enable wvfs path auditor caching
Summary:
The reason caching is disabled seems to be that symlinks can change where
paths points to, while some properties of that path are cached.

Sometimes we know that symlinks are not used in the repo, so we'd like hg
to let us shoot ourselves in the foot.

The motivation here is that I have a specially crafted rebase operation,
which makes on the order of 400000 stat-like syscalls without caching and
on the order of 6000 with caching. This can save ~20s on Windows.

Note that this setting is disabled by default so we can't break anything.
FWIW, we already have an unsafe config option, which allows us to opt into the "we don't do crazy stuff with symlinks" behavior, it's called `unsafe.filtersuspectsymlink`, setting it to false speeds up Windows `status` and we do so for `ovrsource` on Windows.

Reviewed By: quark-zju

Differential Revision: D8297129

fbshipit-source-id: ec751d18b50b042f28f68c9e1a3634ab94a4e7c3
2018-06-07 15:53:07 -07:00
..
cext hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
cffi Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
default.d mergetools.rc: find OSX FileMerge in the new location inside Xcode 4.3 2015-10-16 11:37:34 +02:00
help connectionpool: add configurable reuse lifetime for connections 2018-06-05 04:36:06 -07:00
hgweb Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
httpclient Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
pure Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
rust treestate: add API to get directory's aggregated states 2018-05-26 14:05:18 -07:00
templates hgweb: stop using HTML comments in <script> 2017-12-15 12:15:58 +08:00
thirdparty Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
__init__.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
ancestor.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
archival.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
bdiff.c hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
bdiff.h hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
bitmanipulation.h hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
bookmarks.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
branchmap.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
bundle2.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
bundlerepo.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
byterange.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
changegroup.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
changelog.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
chgserver.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
cmdutil.py template: add a utility function to render template 2018-06-06 15:43:25 -07:00
color.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
commands.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
commandserver.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
compat.h hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
config.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
configitems.py auditor: add a config option to enable wvfs path auditor caching 2018-06-07 15:53:07 -07:00
connectionpool.py connectionpool: fix undefined variable 2018-06-07 15:53:07 -07:00
context.py context: fix workingctx.status() to invoke match.bad correctly 2018-05-31 17:30:31 -07:00
copies.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
crecord.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
dagop.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
dagparser.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
dagutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
debugcommands.py debugcheckcasecollision: fix type of -r default value 2018-06-01 09:32:57 -07:00
destutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
dirstate.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
dirstateguard.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
discovery.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
dispatch.py template: add a way to support command-level template cleanly 2018-06-06 15:43:25 -07:00
drawdag.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
dummycert.pem ssl: on OS X, use a dummy cert to trick Python/OpenSSL to use system CA certs 2014-09-26 02:19:48 +02:00
encoding.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
error.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
exchange.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
exewrapper.c hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
extensions.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
fancyopts.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
filelog.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
filemerge.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
fileset.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
formatter.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
graphmod.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
hbisect.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
help.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
hg.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
hintutil.py hint: pick the user config file that exists 2018-05-31 20:16:07 -07:00
hook.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
httpconnection.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
httppeer.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
i18n.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
interpreter.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
keepalive.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
localrepo.py auditor: add a config option to enable wvfs path auditor caching 2018-06-07 15:53:07 -07:00
lock.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
logexchange.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
lsprof.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
lsprofcalltree.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
mail.py py3: make sure the first argument of time.strftime() is str 2017-11-29 08:44:06 +05:30
main.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
manifest.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
match.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
mdiff.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
merge.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
mergeutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
metrics.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
minirst.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
mpatch.c hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
mpatch.h hg: disable check-code tests for C code 2018-06-05 19:21:43 -07:00
namespaces.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
node.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
obsolete.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
obsutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
parser.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
patch.py stat: add a new "status" style 2018-05-25 01:04:07 -07:00
pathutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
peer.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
phases.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
policy.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
posix.py log maxxrss from within mercurial 2018-06-07 11:50:46 -07:00
profiling.py profiling - modify file opening for profiling 2018-06-07 07:50:38 -07:00
progress.py progress: add nullrenderer 2018-06-04 14:07:30 -07:00
pushkey.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
pvec.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
pycompat.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
rcutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
registrar.py template: add a way to support command-level template cleanly 2018-06-06 15:43:25 -07:00
repair.py truncate: handle bug in truncate 2018-05-30 18:20:57 -07:00
repository.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
repoview.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
revlog.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
revset.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
revsetlang.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
rewriteutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
scmposix.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
scmutil.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
scmwindows.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
server.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
setdiscovery.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
similar.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
simplemerge.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
smartset.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
sparse.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
sshpeer.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
sshserver.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
sslutil.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
statichttprepo.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
statprof.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
store.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
streamclone.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
subrepo.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
tagmerge.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
tags.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
templatefilters.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
templatekw.py templatekw: implement nodechanges as a template keyword 2018-06-06 15:43:25 -07:00
templater.py template: improve error handling when template function signature mismatch 2018-06-06 15:43:25 -07:00
transaction.py truncate: handle bug in truncate 2018-05-30 18:20:57 -07:00
treediscovery.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
treestate.py treestate: implement treestate.py:treestatemap 2018-06-06 12:22:16 -07:00
txnutil.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
ui.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
unionrepo.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
upgrade.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
url.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
urllibcompat.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
util.py log maxxrss from within mercurial 2018-06-07 11:50:46 -07:00
verify.py codemod: join the auto-formatter party 2018-05-25 22:17:29 -07:00
vfs.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
win32.py log maxxrss from within mercurial 2018-06-07 11:50:46 -07:00
windows.py log maxxrss from within mercurial 2018-06-07 11:50:46 -07:00
wireproto.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00
worker.py Upgrade to 18.5b1 2018-05-30 02:23:58 -07:00