[PATCH stable] graft: refuse to commit an interrupted graft (issue3667)

Simon King simon at simonking.org.uk
Thu May 30 16:47:38 CDT 2013


# HG changeset patch
# User Simon King <simon at simonking.org.uk>
# Date 1369949530 -3600
# Branch stable
# 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


More information about the Mercurial-devel mailing list