sapling/edenscm/mercurial
Xavier Deguillard a3360b4cde remotefilelog: automatically repack when many transaction are commited
Summary:
We've seen several cases where the number of packfiles explodes and causes
Mercurial to slowly becoming unusable due to spending most of its time scanning
the filesytem for new packfiles. In the case of tree, Mercurial will blow aways
the hgcache/manifest directory entirely, causing concurrent Mercurial processes
to fail to commit packfiles to disk.

Let's just count the number of commits we've had so far, and trigger a repack
when it goes over a threshold.

Reviewed By: quark-zju

Differential Revision: D17677222

fbshipit-source-id: 99c31c6137d792be1f6de3c298ebff8a4372926e
2019-10-01 14:34:04 -07:00
..
cext util: make util.dirs() and util.finddirs() include root directory (API) 2019-08-12 14:34:36 -07:00
cffi autoformat all of fbcode/scm with black 2019-07-30 08:21:05 -07:00
commands remotefilelog: automatically repack when many transaction are commited 2019-10-01 14:34:04 -07:00
help help: move help docs to Python code 2019-05-13 16:23:40 -07:00
hgweb use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
httpclient replace StringIO with pycompat.StringIO 2019-09-26 15:29:49 -07:00
pure use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
rust bindings: split the crate into multiple crates 2019-09-12 10:51:07 -07:00
templates templates: move builtin styles to code 2019-05-16 09:49:02 -07:00
thirdparty setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00
utils utils: backporting the cborutil from the upstream mercurial 2019-09-21 14:17:05 -07:00
__init__.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
ancestor.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
archival.py archive: prefetch remotefilelog files before executing archive 2019-03-14 14:57:50 -07:00
bdiff.c codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
bdiff.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
bitmanipulation.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
blackbox.py hgmain: make bindings a builtin module 2019-09-20 18:32:36 -07:00
blobstore.py snapshot: add the unionstore to handle the rebundling of snapshot bundles 2019-10-01 06:46:43 -07:00
bookmarks.py statichttprepo: remove statichttprepo 2019-08-09 16:17:54 -07:00
branchmap.py branchmap: drop revbranchcache and other unused logic 2019-02-22 21:02:41 -08:00
bundle2.py pushrebase: don't create transaction during pushkey 2019-04-26 15:42:27 -07:00
bundlerepo.py changelog: add experimental.narrow-heads to change head() behavior 2019-09-20 13:36:19 -07:00
byterange.py Remove FBPYTHON lint suppressions 2019-05-30 08:05:11 -07:00
changegroup.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
changelog.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
chgserver.py chgserver: deal with fdopen EINVAL case 2019-09-27 09:45:09 -07:00
cmdutil.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
color.py commands: provide in-core blackbox command 2019-06-26 11:03:27 -07:00
commandserver.py codemod: replace os.fdopen with util.fdopen 2019-06-27 13:10:20 -07:00
compat.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
config.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
configitems.py dispatch: make it possible to enter ipdb automatically for uncaught exceptions 2019-09-25 17:46:08 -07:00
connectionpool.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
context.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
copies.py copies: remove hack for adding root dir to util.dirs object 2019-08-12 14:34:36 -07:00
crecord.py logging: migrate crecord "blocked" logging to new API 2019-07-06 02:46:17 -07:00
dagop.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
dagparser.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
dagutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
debugcommands.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
destutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
dirstate.py dirstate: fix special handling of root directory 2019-08-14 15:47:25 -07:00
dirstateguard.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
discovery.py phases: implement head-based phases 2019-09-23 17:11:21 -07:00
dispatch.py dispatch: do not start ipdb for common errors 2019-09-27 15:00:20 -07:00
drawdag.py mutation: prefix predecessor hashes with hashing scheme 2019-03-27 04:49:12 -07:00
dummycert.pem codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
eden_dirstate_map.py subrepo: remove subrepo support 2019-03-11 10:43:55 -07:00
eden_dirstate.py perftrace: add tracing for getting status from EdenFS 2019-06-06 04:49:08 -07:00
eden_update.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
edenfs.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
EdenThriftClient.py Removing read to .eden/symlinks on Eden Windows Thrift client 2019-05-15 09:23:00 -07:00
encoding.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
entrypoint.py dispatch: make entry point functions accept args and io 2019-08-28 19:26:25 -07:00
error.py merge: make it possible to manually specify a rename destination 2019-09-18 20:44:05 -07:00
exchange.py discovery: add fastdiscovery 2019-06-03 15:14:21 -07:00
extensions.py extensions: disable simplecache by default 2019-06-27 13:10:21 -07:00
fancyopts.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
filelog.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
filemerge.py merge: make it possible to manually specify a rename destination 2019-09-18 20:44:05 -07:00
fileset.py tracing: record lfs download size 2019-05-03 13:09:33 -07:00
formatter.py templates: move builtin styles to code 2019-05-16 09:49:02 -07:00
fscap.py fscap: mark "fuse.ntfs" (ntfs-3g) as not supporting symlinks 2019-02-06 18:34:30 -08:00
graphmod.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
hbisect.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
help.py hgmain: make bindings a builtin module 2019-09-20 18:32:36 -07:00
helptext.py Add hash binary config option for hg diff 2019-09-26 09:22:18 -07:00
hg.py visibility: add logging for when tracking is in use 2019-08-23 05:03:38 -07:00
hintutil.py revset: start deprecating revision number resolution 2019-08-15 13:24:56 -07:00
hook.py logging: log exthook name 2019-07-06 02:46:19 -07:00
httpconnection.py readauthforuri: allow for multiple matches 2019-09-24 09:10:23 -07:00
httppeer.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
i18n.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
identity.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
interpreter.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
json.py codemod: import from the edenscm package 2019-01-29 17:25:32 -08:00
keepalive.py lfs: rewind fp on retries 2019-08-02 05:15:57 -07:00
localrepo.py narrow-heads: add bi-directional migration 2019-09-27 17:24:00 -07:00
lock.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
lsprof.py autoformat all of fbcode/scm with black 2019-07-30 08:21:05 -07:00
lsprofcalltree.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mail.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
manifest.py match: use "" instead of "." for root directory (API) 2019-08-12 14:34:36 -07:00
match.py match: stablize _rootsanddirs order 2019-09-30 21:38:15 -07:00
mdiff.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
merge.py merge: make it possible to manually specify a rename destination 2019-09-18 20:44:05 -07:00
mergeutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
metrics.py metrics: make ui.metrics.gauge log to the sampling extension 2019-03-20 22:49:18 -07:00
minirst.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
mpatch.c codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mpatch.h codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
mutation.py mutation: use new way to test if successors are visible or not 2019-09-25 17:22:51 -07:00
namespaces.py remotenames: add markaccessed method to the API 2019-04-30 09:26:11 -07:00
node.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
obsolete.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
obsutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
parser.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
patch.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
pathutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
peer.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
perftrace.py util: add istest() method 2019-07-17 21:11:29 -07:00
phases.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
policy.py util: make util.dirs() and util.finddirs() include root directory (API) 2019-08-12 14:34:36 -07:00
posix.py util: add fdopen 2019-06-27 13:10:19 -07:00
profiling.py logging: migrate profiling output to new blackbox format 2019-07-06 02:46:16 -07:00
progress.py setup: move native extensions to edenscmnative 2019-06-19 17:55:49 -07:00
pushkey.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
pvec.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
pycompat.py replace use of Queue with pycompat.queue 2019-09-26 15:29:49 -07:00
rcutil.py config: move default.d/mergetools.rc to code 2019-05-16 17:31:26 -07:00
registrar.py dispatch: remove fancyopts 2019-08-19 19:27:29 -07:00
repair.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
replay.py replay: only expect timestamp and not timezone 2019-02-20 08:47:25 -08:00
repository.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
repoview.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
revlog.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
revset.py revset: fix 'all' for the 'narrow-heads' case 2019-09-23 17:11:22 -07:00
revsetlang.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
rewriteutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
scmposix.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
scmutil.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
scmwindows.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
server.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
setdiscovery.py discovery: add fastdiscovery 2019-06-03 15:14:21 -07:00
similar.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
simplemerge.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
smartset.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
sparse.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
sshpeer.py metrics: add metrics about fetching remote data 2019-03-20 22:49:18 -07:00
sshserver.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
sslutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
statprof.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
store.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
streamclone.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
tagmerge.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
tags.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
templatefilters.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
templatekw.py visibility: use x graphnode for invisible commits 2019-05-16 02:35:48 -07:00
templater.py template: remove manifest rev number from templates 2019-05-22 08:37:10 -07:00
transaction.py flake8: fix lints for unused imports and variables 2019-02-27 06:26:06 -08:00
treedirstate.py hgmain: make bindings a builtin module 2019-09-20 18:32:36 -07:00
treediscovery.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
treestate.py hgmain: make bindings a builtin module 2019-09-20 18:32:36 -07:00
txnutil.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
ui.py hgmain: make bindings a builtin module 2019-09-20 18:32:36 -07:00
uiconfig.py hgmain: make bindings a builtin module 2019-09-20 18:32:36 -07:00
upgrade.py changelog: get access to config options 2019-08-15 12:47:35 -07:00
url.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
urllibcompat.py codemod: move Python packages to edenscm 2019-01-28 18:35:41 -08:00
util.py util: fix hgcmd on buck build 2019-09-27 11:57:47 -07:00
verify.py manifest: remove readfast, replace readdelta 2019-05-24 10:00:49 -07:00
vfs.py lfs: move lfsvfs to vfs.py 2019-09-04 11:09:36 -07:00
visibility.py visibility: track all (hidden) heads 2019-09-25 17:22:50 -07:00
win32.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
windows.py util: add fdopen 2019-06-27 13:10:19 -07:00
wireproto.py use pycompat.range instead of xrange 2019-09-26 15:29:48 -07:00
worker.py codemod: replace os.fdopen with util.fdopen 2019-06-27 13:10:20 -07:00