histedit: fix --continue when rules are finished
If histedit failed after all the rules were complete (for instance, if there was
an exception in the cleanup phase), you couldn't --continue because it was
unable to pop a rule. Let's just skip the rule execution phase of --continue if
there are no more rules.
--- a/hgext/histedit.py Fri May 01 15:28:47 2015 -0700
+++ b/hgext/histedit.py Fri May 01 15:45:07 2015 -0700
@@ -893,21 +893,22 @@
def bootstrapcontinue(ui, state, opts):
repo = state.repo
- action, currentnode = state.rules.pop(0)
-
- actobj = actiontable[action].fromrule(state, currentnode)
+ if state.rules:
+ action, currentnode = state.rules.pop(0)
- s = repo.status()
- if s.modified or s.added or s.removed or s.deleted:
- actobj.continuedirty()
+ actobj = actiontable[action].fromrule(state, currentnode)
+
s = repo.status()
if s.modified or s.added or s.removed or s.deleted:
- raise util.Abort(_("working copy still dirty"))
+ actobj.continuedirty()
+ s = repo.status()
+ if s.modified or s.added or s.removed or s.deleted:
+ raise util.Abort(_("working copy still dirty"))
- parentctx, replacements = actobj.continueclean()
+ parentctx, replacements = actobj.continueclean()
- state.parentctxnode = parentctx.node()
- state.replacements.extend(replacements)
+ state.parentctxnode = parentctx.node()
+ state.replacements.extend(replacements)
return state