Mercurial > hg
changeset 21421:4941caa9f0f8
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.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sun, 11 May 2014 00:49:36 +0900 |
parents | d009f6555b81 |
children | edc6ced48d2d |
files | hgext/mq.py tests/test-mq-qnew.t |
diffstat | 2 files changed, 23 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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 @@ -314,9 +323,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 ==== $ cat ".hg/patches/patch " # HG changeset patch