changeset 25330:8594d0b3018e stable

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.
author Durham Goode <durham@fb.com>
date Thu, 28 May 2015 20:30:20 -0700
parents 884ef09cf658
children 7d24a41200d3 b3840fb03dba
files hgext/histedit.py tests/test-histedit-arguments.t
diffstat 2 files changed, 32 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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
+