Mercurial > hg-stable
changeset 21423:7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
This patch also replaces "editor = False" by "editor =
cmdutil.getcommiteditor()", because:
- it allows to hook commit message determination easily, even in the
case without "--edit"
- it avoids 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 | edc6ced48d2d |
children | d13b4ecdb680 |
files | hgext/mq.py tests/test-mq-qfold.t tests/test-mq-qrefresh-replace-log-message.t |
diffstat | 3 files changed, 52 insertions(+), 7 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 @@ -1656,17 +1656,18 @@ # might be nice to attempt to roll back strip after this 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(): ph.setmessage(desc) return desc 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) message = msg or "\n".join(ph.message) - editor = desceditor elif not msg: if not ph.message: message = defaultmsg
--- a/tests/test-mq-qfold.t Sun May 11 00:49:36 2014 +0900 +++ b/tests/test-mq-qfold.t Sun May 11 00:49:36 2014 +0900 @@ -20,6 +20,8 @@ $ hg qnew -f p3 Fold in the middle of the queue: +(this tests also that editor is not invoked if '--edit' is not +specified) $ hg qpop p1 popping p3 @@ -34,7 +36,7 @@ a +a - $ hg qfold p2 + $ HGEDITOR=cat hg qfold p2 $ grep git .hg/patches/p1 && echo 'git patch found!' [1] @@ -215,6 +217,15 @@ $ HGEDITOR="sh $TESTTMP/editor.sh" hg qfold -e p3 ==== before editing original message + + + 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: added aa + HG: changed a ==== transaction abort! rollback completed @@ -225,7 +236,26 @@ $ cat .hg/last-message.txt original message + + test saving last-message.txt +(confirm whether files listed up in the commit message editing are correct) + + $ cat >> .hg/hgrc <<EOF + > [hooks] + > pretxncommit.unexpectedabort = + > EOF + $ hg status -u | while read f; do rm ${f}; done + $ hg revert --no-backup -q --all + $ hg qpush -q git + now at: git + $ hg qpush -q --move p3 + now at: p3 + + $ hg status --rev "git^1" --rev . -arm + M a + A aa + $ cd ..
--- a/tests/test-mq-qrefresh-replace-log-message.t Sun May 11 00:49:36 2014 +0900 +++ b/tests/test-mq-qrefresh-replace-log-message.t Sun May 11 00:49:36 2014 +0900 @@ -6,6 +6,8 @@ $ hg qinit Should fail if no patches applied +(this tests also that editor is not invoked if '--edit' is not +specified) $ hg qrefresh no patches applied @@ -16,7 +18,7 @@ $ hg qnew -m "First commit message" first-patch $ echo aaaa > file $ hg add file - $ hg qrefresh + $ HGEDITOR=cat hg qrefresh Should display 'First commit message' @@ -126,10 +128,20 @@ > EOF $ rm -f .hg/last-message.txt + $ hg status --rev "second-patch^1" -arm + A file2 $ HGEDITOR="sh $TESTTMP/editor.sh" hg qrefresh -e ==== before editing Fifth commit message This is the 5th log message + + + 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: added file2 ==== transaction abort! rollback completed @@ -141,4 +153,6 @@ Fifth commit message This is the 5th log message + + test saving last-message.txt