diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -64,6 +64,8 @@ def findcmd(ui, cmd, table): raise UnknownCommand(cmd) def bail_if_changed(repo): + if repo.dirstate.parents()[1] != nullid: + raise util.Abort(_('outstanding uncommitted merge')) modified, added, removed, deleted = repo.status()[:4] if modified or added or removed or deleted: raise util.Abort(_("outstanding uncommitted changes")) diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -196,11 +196,9 @@ def backout(ui, repo, node=None, rev=Non raise util.Abort(_("please specify a revision to backout")) cmdutil.bail_if_changed(repo) + node = repo.lookup(rev) + op1, op2 = repo.dirstate.parents() - if op2 != nullid: - raise util.Abort(_('outstanding uncommitted merge')) - node = repo.lookup(rev) - a = repo.changelog.ancestor(op1, node) if a != node: raise util.Abort(_('cannot back out change on a different branch'))