diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -1047,8 +1047,9 @@ submatch = matchmod.subdirmatcher(subpath, m) if opts.get('subrepos') or m.exact(subpath) or any(submatch.files()): sub = wctx.sub(subpath) + subprefix = repo.wvfs.reljoin(prefix, subpath) try: - if sub.addremove(submatch, prefix, opts): + if sub.addremove(submatch, subprefix, opts): ret = 1 except error.LookupError: repo.ui.status(_("skipping missing subrepository: %s\n") diff --git a/mercurial/subrepo.py b/mercurial/subrepo.py --- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -527,8 +527,7 @@ # be used to process sibling subrepos however. opts = copy.copy(opts) opts['subrepos'] = True - return scmutil.addremove(self._repo, m, - self.wvfs.reljoin(prefix, self._path), opts) + return scmutil.addremove(self._repo, m, prefix, opts) @annotatesubrepoerror def cat(self, match, fm, fntemplate, prefix, **opts):