diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py --- a/mercurial/localrepo.py +++ b/mercurial/localrepo.py @@ -1553,11 +1553,21 @@ class localrepository(object): if merge and cctx.deleted(): raise error.Abort(_("cannot commit merge with missing files")) + unresolved, driverresolved = False, False ms = mergemod.mergestate(self) for f in status.modified: - if f in ms and ms[f] == 'u': - raise error.Abort(_('unresolved merge conflicts ' - '(see "hg help resolve")')) + if f in ms: + if ms[f] == 'u': + unresolved = True + elif ms[f] == 'd': + driverresolved = True + + if unresolved: + raise error.Abort(_('unresolved merge conflicts ' + '(see "hg help resolve")')) + if driverresolved: + raise error.Abort(_('driver-resolved merge conflicts'), + hint=_('run "hg resolve --all" to resolve')) if editor: cctx._text = editor(self, cctx, subs)