D5587: watchman: detect nested mercurial repositories and abort
lothiraldan (Boris Feld)
phabricator at mercurial-scm.org
Thu Jan 31 11:34:50 EST 2019
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG6a7b2d2de124: watchman: detect nested mercurial repositories and abort (authored by lothiraldan, committed by ).
REPOSITORY
rHG Mercurial
CHANGES SINCE LAST UPDATE
https://phab.mercurial-scm.org/D5587?vs=13412&id=13645
REVISION DETAIL
https://phab.mercurial-scm.org/D5587
AFFECTED FILES
hgext/fsmonitor/__init__.py
CHANGE DETAILS
diff --git a/hgext/fsmonitor/__init__.py b/hgext/fsmonitor/__init__.py
--- a/hgext/fsmonitor/__init__.py
+++ b/hgext/fsmonitor/__init__.py
@@ -367,6 +367,9 @@
fexists = entry['exists']
kind = getkind(fmode)
+ if '/.hg/' in fname or fname.endswith('/.hg'):
+ return bail('nested-repo-detected')
+
if not fexists:
# if marked as deleted and we don't already have a change
# record, mark it as deleted. If we already have an entry
@@ -740,6 +743,14 @@
repo, node, branchmerge, force, ancestor, mergeancestor,
labels, matcher, **kwargs)
+def repo_has_depth_one_nested_repo(repo):
+ for f in repo.wvfs.listdir():
+ if os.path.isdir(os.path.join(repo.root, f, '.hg')):
+ msg = 'fsmonitor: sub-repository %r detected, fsmonitor disabled\n'
+ repo.ui.debug(msg % f)
+ return True
+ return False
+
def reposetup(ui, repo):
# We don't work with largefiles or inotify
exts = extensions.enabled()
@@ -757,6 +768,9 @@
if repo.wvfs.exists('.hgsubstate') or repo.wvfs.exists('.hgsub'):
return
+ if repo_has_depth_one_nested_repo(repo):
+ return
+
fsmonitorstate = state.state(repo)
if fsmonitorstate.mode == 'off':
return
To: lothiraldan, #hg-reviewers, indygreg
Cc: mjpieters, indygreg, mercurial-devel
More information about the Mercurial-devel
mailing list