# HG changeset patch # User Simon King # Date 2013-05-30 21:32:10 # Node ID e078ea9b4ce40ee9a85c6b9d5db55afc11519bd0 # Parent 39ea540dc1543b5ed31251ef9f394c7902c65f19 graft: refuse to commit an interrupted graft (issue3667) 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