mirror of
https://github.com/facebook/sapling.git
synced 2024-10-07 07:17:55 +03:00
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.
This commit is contained in:
parent
86d8361294
commit
9af54bf260
11
hgext/mq.py
11
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
|
||||
|
@ -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 <<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 ..
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user