diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -1315,6 +1315,10 @@ def commit(ui, repo, *pats, **opts): # Let --subrepos on the command line override config setting. ui.setconfig('ui', 'commitsubrepos', True) + if repo.vfs.exists('graftstate'): + raise util.Abort(_('cannot commit an interrupted graft operation'), + hint=_('use "hg graft -c" to continue graft')) + extra = {} if opts.get('close_branch'): extra['close'] = 1 diff --git a/tests/test-graft.t b/tests/test-graft.t --- a/tests/test-graft.t +++ b/tests/test-graft.t @@ -174,6 +174,13 @@ Graft out of order, skipping a merge and (use hg resolve and hg graft --continue) [255] +Commit while interrupted should fail: + + $ hg ci -m 'commit interrupted graft' + abort: cannot commit an interrupted graft operation + (use "hg graft -c" to continue graft) + [255] + Continue without resolve should fail: $ hg graft -c