diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2208,11 +2208,12 @@ unit=_('subrepos')) for subpath in subs: submatch = matchmod.subdirmatcher(subpath, m) + subprefix = repo.wvfs.reljoin(prefix, subpath) if subrepos or m.exact(subpath) or any(submatch.files()): progress.increment() sub = wctx.sub(subpath) try: - if sub.removefiles(submatch, prefix, after, force, subrepos, + if sub.removefiles(submatch, subprefix, after, force, subrepos, dryrun, warnings): ret = 1 except error.LookupError: diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -847,8 +847,7 @@ @annotatesubrepoerror def removefiles(self, matcher, prefix, after, force, subrepos, dryrun, warnings): - return cmdutil.remove(self.ui, self._repo, matcher, - self.wvfs.reljoin(prefix, self._path), + return cmdutil.remove(self.ui, self._repo, matcher, prefix, after, force, subrepos, dryrun) @annotatesubrepoerror