diff --git a/mercurial/fileset.py b/mercurial/fileset.py --- a/mercurial/fileset.py +++ b/mercurial/fileset.py @@ -566,7 +566,8 @@ class matchctx(object): def filter(self, files): return [f for f in files if f in self.subset] def existing(self): - assert self._existingenabled, 'unexpected existing() invocation' + if not self._existingenabled: + raise error.ProgrammingError('unexpected existing() invocation') if self._status is not None: removed = set(self._status[3]) unknown = set(self._status[4] + self._status[5]) diff --git a/tests/test-fileset.t b/tests/test-fileset.t --- a/tests/test-fileset.t +++ b/tests/test-fileset.t @@ -446,7 +446,7 @@ Test detection of unintentional 'matchct > EOF $ fileset 'existingcaller()' 2>&1 | tail -1 - AssertionError: unexpected existing() invocation + *ProgrammingError: *unexpected existing() invocation* (glob) Test 'revs(...)' ================