histedit: add checkunfinished support (
issue3955)
The tests contain a couple corner cases where workarounds are now
required. Strictly speaking, these are behavior regressions, but of an
extremely obscure and marginal sort. Commits or updates in the middle
of a histedit would have almost always been fairly serious user error.
--- a/hgext/histedit.py Wed Jul 24 23:51:44 2013 -0500
+++ b/hgext/histedit.py Wed Jul 24 23:51:44 2013 -0500
@@ -512,6 +512,7 @@
os.unlink(os.path.join(repo.path, 'histedit-state'))
return
else:
+ cmdutil.checkunfinished(repo)
cmdutil.bailifchanged(repo)
topmost, empty = repo.dirstate.parents()
@@ -872,3 +873,6 @@
def extsetup(ui):
cmdutil.summaryhooks.add('histedit', summaryhook)
+ cmdutil.unfinishedstates.append(
+ ['histedit-state', False, _('histedit in progress'),
+ _("use 'hg histedit --continue' or 'hg histedit --abort'")])
--- a/tests/test-histedit-edit.t Wed Jul 24 23:51:44 2013 -0500
+++ b/tests/test-histedit-edit.t Wed Jul 24 23:51:44 2013 -0500
@@ -69,16 +69,12 @@
$ hg id -n
3+
$ hg up 0
- 0 files updated, 0 files merged, 3 files removed, 0 files unresolved
- $ HGEDITOR='echo foobaz > ' hg histedit --continue
- abort: 055a42cdd887 is not an ancestor of working directory
- (update to 055a42cdd887 or descendant and run "hg histedit --continue" again)
+ abort: histedit in progress
+ (use 'hg histedit --continue' or 'hg histedit --abort')
[255]
- $ hg up 3
- 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
-commit, then edit the revision
- $ hg ci -m 'wat'
+commit, then edit the revision (temporarily disable histedit to allow commit)
+ $ hg ci -m 'wat' --config 'extensions.histedit=!'
created new head
$ echo a > e
$ HGEDITOR='echo foobaz > ' hg histedit --continue 2>&1 | fixbundle
--- a/tests/test-histedit-fold.t Wed Jul 24 23:51:44 2013 -0500
+++ b/tests/test-histedit-fold.t Wed Jul 24 23:51:44 2013 -0500
@@ -214,7 +214,7 @@
> 5
> EOF
$ hg resolve --mark file
- $ hg commit -m '+5.2'
+ $ hg commit -m '+5.2' --config 'extensions.histedit=!'
created new head
$ echo 6 >> file
$ HGEDITOR=cat hg histedit --continue