# HG changeset patch # User FUJIWARA Katsunori # Date 1399736976 -32400 # Node ID 4941caa9f0f81f2590330ce6a2e4ff423d6bdb67 # Parent d009f6555b8152158c30bf32c47aace18dda2e26 mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qnew) This patch also replaces "editor = False" by "editor = cmdutil.getcommiteditor()", because: - the latter allows to hook commit message determination easily, even in the case without "--edit" - the latter can avoid regression (or additional care) around saving "last-message.txt", even if MQ's "newcommit()" changes its implementation logic from "localrepository.commit" to "localrepository.commitctx" with "memctx" in the future to save commit message into "last-messge.txt" with "memctx", "editor" should be valid function. diff -r d009f6555b81 -r 4941caa9f0f8 hgext/mq.py --- a/hgext/mq.py Sun May 11 00:49:36 2014 +0900 +++ b/hgext/mq.py Sun May 11 00:49:36 2014 +0900 @@ -1081,17 +1081,18 @@ p.write("# Date %s %s\n\n" % date) defaultmsg = "[mq]: %s" % patchfn - editor = False + editor = cmdutil.getcommiteditor() if edit: - def desceditor(repo, ctx, subs): - desc = self.ui.edit(ctx.description() + "\n", - ctx.user()) + def finishdesc(desc): if desc.rstrip(): return desc else: return defaultmsg + # i18n: this message is shown in editor with "HG: " prefix + extramsg = _('Leave message empty to use default message.') + editor = cmdutil.getcommiteditor(finishdesc=finishdesc, + extramsg=extramsg) commitmsg = msg - editor = desceditor else: commitmsg = msg or defaultmsg diff -r d009f6555b81 -r 4941caa9f0f8 tests/test-mq-qnew.t --- a/tests/test-mq-qnew.t Sun May 11 00:49:36 2014 +0900 +++ b/tests/test-mq-qnew.t Sun May 11 00:49:36 2014 +0900 @@ -284,9 +284,17 @@ > EOF $ rm -f .hg/last-message.txt + $ hg status $ HGEDITOR="sh $TESTTMP/editor.sh" hg qnew -e patch ==== before editing + + HG: Enter commit message. Lines beginning with 'HG:' are removed. + HG: Leave message empty to use default message. + HG: -- + HG: user: test + HG: branch 'default' + HG: no files changed ==== transaction abort! rollback completed @@ -295,6 +303,7 @@ [255] $ cat .hg/last-message.txt + test saving last-message.txt $ cat >> .hg/hgrc < EOF $ rm -f .hg/last-message.txt + $ hg status $ HGEDITOR="sh $TESTTMP/editor.sh" hg qnew -e "patch " ==== before editing + + HG: Enter commit message. Lines beginning with 'HG:' are removed. + HG: Leave message empty to use default message. + HG: -- + HG: user: test + HG: branch 'default' + HG: no files changed ==== $ cat ".hg/patches/patch " # HG changeset patch