diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -735,10 +735,9 @@ class queue(object): if not keep: r = self.qrepo() if r: - r[None].remove(patches, True) - else: - for p in patches: - os.unlink(self.join(p)) + r[None].forget(patches) + for p in patches: + os.unlink(self.join(p)) if numrevs: qfinished = self.applied[:numrevs] @@ -2623,7 +2622,7 @@ def rename(ui, repo, patch, name=None, * if r.dirstate[name] == 'r': wctx.undelete([name]) wctx.copy(patch, name) - wctx.remove([patch], False) + wctx.forget([patch]) finally: wlock.release() diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -2269,7 +2269,7 @@ def forget(ui, repo, *pats, **opts): if ui.verbose or not m.exact(f): ui.status(_('removing %s\n') % m.rel(f)) - repo[None].remove(forget, unlink=False) + repo[None].forget(forget) return errs @command('grep', diff --git a/mercurial/context.py b/mercurial/context.py --- a/mercurial/context.py +++ b/mercurial/context.py @@ -835,12 +835,14 @@ class workingctx(changectx): finally: wlock.release() - def forget(self, list): + def forget(self, files): wlock = self._repo.wlock() try: - for f in list: + for f in files: if self._repo.dirstate[f] != 'a': - self._repo.ui.warn(_("%s not added!\n") % f) + self._repo.dirstate.remove(f) + elif f not in self._repo.dirstate: + self._repo.ui.warn(_("%s not tracked!\n") % f) else: self._repo.dirstate.drop(f) finally: diff --git a/mercurial/patch.py b/mercurial/patch.py --- a/mercurial/patch.py +++ b/mercurial/patch.py @@ -489,7 +489,7 @@ class workingbackend(fsbackend): scmutil.dirstatecopy(self.ui, self.repo, wctx, src, dst) addremoved.discard(src) if (not self.similarity) and self.removed: - wctx.remove(sorted(self.removed)) + wctx.forget(sorted(self.removed)) if addremoved: cwd = self.repo.getcwd() if cwd: diff --git a/mercurial/scmutil.py b/mercurial/scmutil.py --- a/mercurial/scmutil.py +++ b/mercurial/scmutil.py @@ -623,7 +623,7 @@ def addremove(repo, pats=[], opts={}, dr wctx = repo[None] wlock = repo.wlock() try: - wctx.remove(deleted) + wctx.forget(deleted) wctx.add(unknown) for new, old in copies.iteritems(): wctx.copy(old, new)