Patchwork [1,of,6] histedit: convert message action into a class

login
register
mail settings
Submitter Durham Goode
Date April 15, 2015, 10:55 p.m.
Message ID <795264e586902a1a0b7c.1429138551@dev2000.prn2.facebook.com>
Download mbox | patch
Permalink /patch/8696/
State Accepted
Headers show

Comments

Durham Goode - April 15, 2015, 10:55 p.m.
# HG changeset patch
# User Durham Goode <durham@fb.com>
# Date 1428133352 25200
#      Sat Apr 04 00:42:32 2015 -0700
# Node ID 795264e586902a1a0b7cf41246d8ee749725f03d
# Parent  329572a4f5f2ec55d592a6db3ea1ac2606bfdc91
histedit: convert message action into a class

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

Patch

diff --git a/hgext/histedit.py b/hgext/histedit.py
--- a/hgext/histedit.py
+++ b/hgext/histedit.py
@@ -506,25 +506,9 @@  class drop(histeditaction):
         parentctx = self.repo[self.state.parentctxnode]
         return parentctx, [(self.node, tuple())]
 
-def message(ui, state, ha, opts):
-    repo, ctxnode = state.repo, state.parentctxnode
-    ctx = repo[ctxnode]
-    oldctx = repo[ha]
-    hg.update(repo, ctx.node())
-    stats = applychanges(ui, repo, oldctx, opts)
-    if stats and stats[3] > 0:
-        raise error.InterventionRequired(
-            _('Fix up the change and run hg histedit --continue'))
-    message = oldctx.description()
-    commit = commitfuncfor(repo, oldctx)
-    editor = cmdutil.getcommiteditor(edit=True, editform='histedit.mess')
-    new = commit(text=message, user=oldctx.user(), date=oldctx.date(),
-                 extra=oldctx.extra(), editor=editor)
-    newctx = repo[new]
-    if oldctx.node() != newctx.node():
-        return newctx, [(oldctx.node(), (new,))]
-    # We didn't make an edit, so just indicate no replaced nodes
-    return newctx, []
+class message(histeditaction):
+    def commiteditor(self):
+        return cmdutil.getcommiteditor(edit=True, editform='histedit.mess')
 
 def findoutgoing(ui, repo, remote=None, force=False, opts={}):
     """utility function to find the first outgoing changeset
@@ -839,8 +823,8 @@  def bootstrapcontinue(ui, state, opts):
                 message = 'fold-temp-revision %s' % currentnode[:12]
             else:
                 message = ctx.description()
-            editopt = action in ('e', 'edit', 'm', 'mess')
-            canonaction = {'e': 'edit', 'm': 'mess'}
+            editopt = action in ('e', 'edit')
+            canonaction = {'e': 'edit'}
             editform = 'histedit.%s' % canonaction.get(action, action)
             editor = cmdutil.getcommiteditor(edit=editopt, editform=editform)
             commit = commitfuncfor(repo, ctx)