--- a/mercurial/hg.py Mon Jul 01 05:25:53 2013 +0900
+++ b/mercurial/hg.py Mon Jul 01 11:09:29 2013 -0300
@@ -472,6 +472,7 @@
def clean(repo, node, show_stats=True):
"""forcibly switch the working directory to node, clobbering changes"""
stats = updaterepo(repo, node, True)
+ util.unlinkpath(repo.join('graftstate'), ignoremissing=True)
if show_stats:
_showstats(repo, stats)
return stats[3] > 0
--- a/tests/test-graft.t Mon Jul 01 05:25:53 2013 +0900
+++ b/tests/test-graft.t Mon Jul 01 11:09:29 2013 -0300
@@ -181,6 +181,32 @@
(use "hg graft -c" to continue graft)
[255]
+Abort the graft and try committing:
+
+ $ hg up -C .
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo c >> e
+ $ hg ci -mtest
+
+ $ hg strip . --config extensions.mq=
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)
+
+Graft again:
+
+ $ hg graft 1 5 4 3 'merge()' 2
+ skipping ungraftable merge revision 6
+ skipping already grafted revision 2
+ skipping already grafted revision 1
+ skipping already grafted revision 5
+ grafting revision 4
+ merging e
+ warning: conflicts during merge.
+ merging e incomplete! (edit conflicts, then use 'hg resolve --mark')
+ abort: unresolved conflicts, can't continue
+ (use hg resolve and hg graft --continue)
+ [255]
+
Continue without resolve should fail:
$ hg graft -c