histedit: fix keep during --continue
The --keep option was being serialized to the state file, but it wasn't actually
being used when running a histedit --continue. This fixes that.
--- a/hgext/histedit.py Wed May 27 14:28:29 2015 -0500
+++ b/hgext/histedit.py Thu May 28 20:30:20 2015 -0700
@@ -741,7 +741,7 @@
replacements = []
- keep = opts.get('keep', False)
+ state.keep = opts.get('keep', False)
# rebuild state
if goal == 'continue':
@@ -810,7 +810,7 @@
'exactly one common root'))
root = rr[0].node()
- revs = between(repo, root, topmost, keep)
+ revs = between(repo, root, topmost, state.keep)
if not revs:
raise util.Abort(_('%s is not an ancestor of working directory') %
node.short(root))
@@ -834,7 +834,6 @@
state.parentctxnode = parentctxnode
state.rules = rules
- state.keep = keep
state.topmost = topmost
state.replacements = replacements
@@ -870,7 +869,7 @@
for n in succs[1:]:
ui.debug(m % node.short(n))
- if not keep:
+ if not state.keep:
if mapping:
movebookmarks(ui, repo, mapping, state.topmost, ntm)
# TODO update mq state
--- a/tests/test-histedit-arguments.t Wed May 27 14:28:29 2015 -0500
+++ b/tests/test-histedit-arguments.t Thu May 28 20:30:20 2015 -0700
@@ -295,3 +295,32 @@
# m, mess = edit message without changing commit content
#
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+Test --continue with --keep
+
+ $ hg strip -q -r . --config extensions.strip=
+ $ hg histedit '.^' -q --keep --commands - << EOF
+ > edit eb57da33312f 2 three
+ > pick f3cfcca30c44 4 x
+ > EOF
+ Make changes as needed, you may commit or record as needed now.
+ When you are finished, run hg histedit --continue to resume.
+ [1]
+ $ echo edit >> alpha
+ $ hg histedit -q --continue
+ $ hg log -G -T '{rev}:{node|short} {desc}'
+ @ 6:8fda0c726bf2 x
+ |
+ o 5:63379946892c three
+ |
+ | o 4:f3cfcca30c44 x
+ | |
+ | | o 3:2a30f3cfee78 four
+ | |/ ***
+ | | five
+ | o 2:eb57da33312f three
+ |/
+ o 1:579e40513370 two
+ |
+ o 0:6058cbb6cfd7 one
+