diff --git a/hgext/mq.py b/hgext/mq.py index 74322917e8..76dec01c39 100644 --- a/hgext/mq.py +++ b/hgext/mq.py @@ -1656,17 +1656,18 @@ class queue(object): # 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 diff --git a/tests/test-mq-qfold.t b/tests/test-mq-qfold.t index b84263960a..2f0583d54d 100644 --- a/tests/test-mq-qfold.t +++ b/tests/test-mq-qfold.t @@ -20,6 +20,8 @@ init: $ 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 @@ Fold in the middle of the queue: a +a - $ hg qfold p2 + $ HGEDITOR=cat hg qfold p2 $ grep git .hg/patches/p1 && echo 'git patch found!' [1] @@ -215,6 +217,15 @@ Test saving last-message.txt: $ 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 @@ Test saving last-message.txt: $ 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 < [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 .. diff --git a/tests/test-mq-qrefresh-replace-log-message.t b/tests/test-mq-qrefresh-replace-log-message.t index 9f3fe08727..8acf2253a3 100644 --- a/tests/test-mq-qrefresh-replace-log-message.t +++ b/tests/test-mq-qrefresh-replace-log-message.t @@ -6,6 +6,8 @@ Environment setup for MQ $ 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 @@ Should fail if no patches applied $ 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 @@ Test saving last-message.txt: > 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 @@ Test saving last-message.txt: Fifth commit message This is the 5th log message + + test saving last-message.txt