[PATCH 2 of 6] histedit: convert edit action into a class

Durham Goode durham at fb.com
Wed Apr 15 17:55:52 CDT 2015


# HG changeset patch
# User Durham Goode <durham at fb.com>
# Date 1428134451 25200
#      Sat Apr 04 01:00:51 2015 -0700
# Node ID 5724dc0f9a89155c71d71b54a8341789f5ced390
# Parent  795264e586902a1a0b7cf41246d8ee749725f03d
histedit: convert edit action into a class

This converts the edit action into a histeditclass instance, as part of an
ongoing effort to refactor histedit for maintainability and robustness.

diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -429,15 +429,19 @@ class pick(histeditaction):
 
         return super(pick, self).run()
 
-def edit(ui, state, ha, opts):
-    repo, ctxnode = state.repo, state.parentctxnode
-    ctx = repo[ctxnode]
-    oldctx = repo[ha]
-    hg.update(repo, ctx.node())
-    applychanges(ui, repo, oldctx, opts)
-    raise error.InterventionRequired(
-        _('Make changes as needed, you may commit or record as needed now.\n'
-          'When you are finished, run hg histedit --continue to resume.'))
+class edit(histeditaction):
+    def run(self):
+        repo = self.repo
+        rulectx = repo[self.node]
+        hg.update(repo, self.state.parentctxnode)
+        applychanges(repo.ui, repo, rulectx, {})
+        raise error.InterventionRequired(
+            _('Make changes as needed, you may commit or record as needed '
+              'now.\nWhen you are finished, run hg histedit --continue to '
+              'resume.'))
+
+    def commiteditor(self):
+        return cmdutil.getcommiteditor(edit=True, editform='histedit.edit')
 
 def rollup(ui, state, ha, opts):
     rollupopts = opts.copy()
@@ -823,10 +827,7 @@ def bootstrapcontinue(ui, state, opts):
                 message = 'fold-temp-revision %s' % currentnode[:12]
             else:
                 message = ctx.description()
-            editopt = action in ('e', 'edit')
-            canonaction = {'e': 'edit'}
-            editform = 'histedit.%s' % canonaction.get(action, action)
-            editor = cmdutil.getcommiteditor(edit=editopt, editform=editform)
+            editor = cmdutil.getcommiteditor()
             commit = commitfuncfor(repo, ctx)
             new = commit(text=message, user=ctx.user(), date=ctx.date(),
                          extra=ctx.extra(), editor=editor)


More information about the Mercurial-devel mailing list