diff --git a/hgext/histedit.py b/hgext/histedit.py --- a/hgext/histedit.py +++ b/hgext/histedit.py @@ -745,7 +745,7 @@ def _histedit(ui, repo, state, *freeargs replacements = [] - keep = opts.get('keep', False) + state.keep = opts.get('keep', False) # rebuild state if goal == 'continue': @@ -814,7 +814,7 @@ def _histedit(ui, repo, state, *freeargs '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)) @@ -838,7 +838,6 @@ def _histedit(ui, repo, state, *freeargs state.parentctxnode = parentctxnode state.rules = rules - state.keep = keep state.topmost = topmost state.replacements = replacements @@ -874,7 +873,7 @@ def _histedit(ui, repo, state, *freeargs 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 diff --git a/tests/test-histedit-arguments.t b/tests/test-histedit-arguments.t --- a/tests/test-histedit-arguments.t +++ b/tests/test-histedit-arguments.t @@ -295,3 +295,32 @@ Test that trimming description using mul # 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 +