# HG changeset patch # User Valentin Gatien-Baron # Date 1600097544 14400 # Node ID c1d6e930ac8ad3b501d75f873edf30240f9d1bb2 # Parent 14be07d5603c10df913dd48cd2392e565f0f29aa fsmonitor: increase the threshold before we recommend it, when using rust 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. Differential Revision: https://phab.mercurial-scm.org/D9021 diff -r 14be07d5603c -r c1d6e930ac8a hgext/fsmonitor/__init__.py --- a/hgext/fsmonitor/__init__.py Fri Jun 19 06:15:06 2020 +0200 +++ b/hgext/fsmonitor/__init__.py Mon Sep 14 11:32:24 2020 -0400 @@ -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 diff -r 14be07d5603c -r c1d6e930ac8a mercurial/configitems.py --- a/mercurial/configitems.py Fri Jun 19 06:15:06 2020 +0200 +++ b/mercurial/configitems.py Mon Sep 14 11:32:24 2020 -0400 @@ -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 -r 14be07d5603c -r c1d6e930ac8a mercurial/merge.py --- a/mercurial/merge.py Fri Jun 19 06:15:06 2020 +0200 +++ b/mercurial/merge.py Mon Sep 14 11:32:24 2020 -0400 @@ -1698,6 +1698,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 -r 14be07d5603c -r c1d6e930ac8a tests/test-clone.t --- a/tests/test-clone.t Fri Jun 19 06:15:06 2020 +0200 +++ b/tests/test-clone.t Mon Sep 14 11:32:24 2020 -0400 @@ -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