diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -2071,6 +2071,7 @@ def remove(ui, repo, m, prefix, after, f % join(subpath)) # warn about failure to delete explicit files/dirs + deleteddirs = scmutil.dirs(deleted) for f in m.files(): def insubrepo(): for subpath in wctx.substate: @@ -2078,7 +2079,8 @@ def remove(ui, repo, m, prefix, after, f return True return False - if f in repo.dirstate or f in wctx.dirs() or f == '.' or insubrepo(): + isdir = f in deleteddirs or f in wctx.dirs() + if f in repo.dirstate or isdir or f == '.' or insubrepo(): continue if repo.wvfs.exists(f): diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -1289,9 +1289,6 @@ class committablectx(basectx): self._repo.dirstate.setparents(node) self._repo.dirstate.endparentchange() - def dirs(self): - return self._repo.dirstate.dirs() - class workingctx(committablectx): """A workingctx object makes access to data related to the current working directory convenient.