D9021: fsmonitor: increase the threshold before we recommend it, when using rust
valentin.gatienbaron (Valentin Gatien-Baron)
phabricator at mercurial-scm.org
Mon Sep 14 16:01:20 UTC 2020
valentin.gatienbaron created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
50k files works just fine with the rust status, and it's annoying to
get told "consider using fsmonitor" when we have another solution to
the status speed.
400k files was not chosen in any rigorous way. I know 200k files is
fine. Twice as many files should still be fine.
REPOSITORY
rHG Mercurial
BRANCH
default
REVISION DETAIL
https://phab.mercurial-scm.org/D9021
AFFECTED FILES
hgext/fsmonitor/__init__.py
mercurial/configitems.py
mercurial/merge.py
tests/test-clone.t
CHANGE DETAILS
diff --git a/tests/test-clone.t b/tests/test-clone.t
--- a/tests/test-clone.t
+++ b/tests/test-clone.t
@@ -1241,6 +1241,7 @@
$ cat >> $HGRCPATH << EOF
> [fsmonitor]
> warn_update_file_count = 2
+ > warn_update_file_count_rust = 2
> EOF
We should see a warning about no fsmonitor on supported platforms
diff --git a/mercurial/merge.py b/mercurial/merge.py
--- a/mercurial/merge.py
+++ b/mercurial/merge.py
@@ -1693,6 +1693,15 @@
fsmonitorthreshold = repo.ui.configint(
b'fsmonitor', b'warn_update_file_count'
)
+ # avoid cycle dirstate -> sparse -> merge -> dirstate
+ from . import dirstate
+
+ if dirstate.rustmod is not None:
+ # When using rust status, fsmonitor becomes necessary at higher sizes
+ fsmonitorthreshold = repo.ui.configint(
+ b'fsmonitor', b'warn_update_file_count_rust',
+ )
+
try:
# avoid cycle: extensions -> cmdutil -> merge
from . import extensions
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -793,6 +793,9 @@
b'fsmonitor', b'warn_update_file_count', default=50000,
)
coreconfigitem(
+ b'fsmonitor', b'warn_update_file_count_rust', default=400000,
+)
+coreconfigitem(
b'help', br'hidden-command\..*', default=False, generic=True,
)
coreconfigitem(
diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py
--- a/hgext/fsmonitor/__init__.py
+++ b/hgext/fsmonitor/__init__.py
@@ -73,6 +73,8 @@
[fsmonitor]
warn_update_file_count = (integer)
+ # or when mercurial is built with rust support
+ warn_update_file_count_rust = (integer)
If ``warn_when_unused`` is set and fsmonitor isn't enabled, a warning will
be printed during working directory updates if this many files will be
To: valentin.gatienbaron, #hg-reviewers
Cc: mercurial-patches, mercurial-devel
More information about the Mercurial-devel
mailing list