test-mq-qrefresh-replace-log-message.t
328 lines
| 7.7 KiB
| text/troff
|
Tads3Lexer
/ tests / test-mq-qrefresh-replace-log-message.t
timeless@mozdev.org
|
r17478 | Environment setup for MQ | ||
Matt Mackall
|
r12468 | |||
$ echo "[extensions]" >> $HGRCPATH | ||||
$ echo "mq=" >> $HGRCPATH | ||||
FUJIWARA Katsunori
|
r26750 | $ cat >> $HGRCPATH <<EOF | ||
> [defaults] | ||||
> # explicit date to commit with fixed hashid | ||||
> qnew = -d "0 0" | ||||
> qrefresh = -d "0 0" | ||||
> qfold = -d "0 0" | ||||
> EOF | ||||
Matt Mackall
|
r12468 | $ hg init | ||
$ hg qinit | ||||
Should fail if no patches applied | ||||
FUJIWARA Katsunori
|
r21423 | (this tests also that editor is not invoked if '--edit' is not | ||
specified) | ||||
Matt Mackall
|
r12468 | |||
$ hg qrefresh | ||||
no patches applied | ||||
[1] | ||||
$ hg qrefresh -e | ||||
no patches applied | ||||
[1] | ||||
$ hg qnew -m "First commit message" first-patch | ||||
$ echo aaaa > file | ||||
$ hg add file | ||||
FUJIWARA Katsunori
|
r21423 | $ HGEDITOR=cat hg qrefresh | ||
Matt Mackall
|
r12468 | |||
Should display 'First commit message' | ||||
$ hg log -l1 --template "{desc}\n" | ||||
First commit message | ||||
Testing changing message with -m | ||||
FUJIWARA Katsunori
|
r21924 | (this tests also that '--edit' can be used with '--message', and | ||
that '[committemplate] changeset' definition and commit log specific | ||||
template keyword 'extramsg' work well) | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [committemplate] | ||||
FUJIWARA Katsunori
|
r22013 | > listupfiles = {file_adds % | ||
> "HG: added {file}\n" }{file_mods % | ||||
> "HG: changed {file}\n" }{file_dels % | ||||
> "HG: removed {file}\n" }{if(files, "", | ||||
> "HG: no files changed\n")} | ||||
> | ||||
FUJIWARA Katsunori
|
r21924 | > changeset = HG: this is customized commit template | ||
> {desc}\n\n | ||||
> HG: Enter commit message. Lines beginning with 'HG:' are removed. | ||||
> HG: {extramsg} | ||||
> HG: -- | ||||
> HG: user: {author} | ||||
FUJIWARA Katsunori
|
r22013 | > HG: branch '{branch}'\n{listupfiles} | ||
FUJIWARA Katsunori
|
r21924 | > EOF | ||
Matt Mackall
|
r12468 | |||
$ echo bbbb > file | ||||
FUJIWARA Katsunori
|
r21713 | $ HGEDITOR=cat hg qrefresh -m "Second commit message" -e | ||
FUJIWARA Katsunori
|
r21924 | HG: this is customized commit template | ||
FUJIWARA Katsunori
|
r21713 | Second commit 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 file | ||||
Matt Mackall
|
r12468 | |||
FUJIWARA Katsunori
|
r21924 | $ cat >> .hg/hgrc <<EOF | ||
> # disable customizing for subsequent tests | ||||
> [committemplate] | ||||
> changeset = | ||||
> EOF | ||||
Matt Mackall
|
r12468 | Should display 'Second commit message' | ||
$ hg log -l1 --template "{desc}\n" | ||||
Second commit message | ||||
Testing changing message with -l | ||||
$ echo "Third commit message" > logfile | ||||
$ echo " This is the 3rd log message" >> logfile | ||||
$ echo bbbb > file | ||||
$ hg qrefresh -l logfile | ||||
Should display 'Third commit message\\\n This is the 3rd log message' | ||||
$ hg log -l1 --template "{desc}\n" | ||||
Third commit message | ||||
This is the 3rd log message | ||||
Testing changing message with -l- | ||||
$ hg qnew -m "First commit message" second-patch | ||||
$ echo aaaa > file2 | ||||
$ hg add file2 | ||||
$ echo bbbb > file2 | ||||
$ (echo "Fifth commit message"; echo " This is the 5th log message") | hg qrefresh -l- | ||||
Should display 'Fifth commit message\\\n This is the 5th log message' | ||||
$ hg log -l1 --template "{desc}\n" | ||||
Fifth commit message | ||||
This is the 5th log message | ||||
FUJIWARA Katsunori
|
r21236 | |||
Test saving last-message.txt: | ||||
$ cat > $TESTTMP/editor.sh << EOF | ||||
> echo "==== before editing" | ||||
> cat \$1 | ||||
> echo "====" | ||||
> (echo; echo "test saving last-message.txt") >> \$1 | ||||
> EOF | ||||
$ cat > $TESTTMP/commitfailure.py <<EOF | ||||
Pierre-Yves David
|
r26587 | > from mercurial import error | ||
FUJIWARA Katsunori
|
r21236 | > def reposetup(ui, repo): | ||
> class commitfailure(repo.__class__): | ||||
> def commit(self, *args, **kwargs): | ||||
Pulkit Goyal
|
r36298 | > raise error.Abort(b'emulating unexpected abort') | ||
FUJIWARA Katsunori
|
r21236 | > repo.__class__ = commitfailure | ||
> EOF | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [extensions] | ||||
> # this failure occurs before editor invocation | ||||
> commitfailure = $TESTTMP/commitfailure.py | ||||
> EOF | ||||
$ hg qapplied | ||||
first-patch | ||||
second-patch | ||||
$ hg tip --template "{files}\n" | ||||
file2 | ||||
(test that editor is not invoked before transaction starting) | ||||
$ rm -f .hg/last-message.txt | ||||
$ HGEDITOR="sh $TESTTMP/editor.sh" hg qrefresh -e | ||||
timeless@mozdev.org
|
r26780 | qrefresh interrupted while patch was popped! (revert --all, qpush to recover) | ||
FUJIWARA Katsunori
|
r21236 | abort: emulating unexpected abort | ||
[255] | ||||
Danek Duvall
|
r21930 | $ test -f .hg/last-message.txt | ||
FUJIWARA Katsunori
|
r21236 | [1] | ||
(reset applied patches and directory status) | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [extensions] | ||||
> commitfailure = ! | ||||
> EOF | ||||
$ hg qapplied | ||||
first-patch | ||||
$ hg status -A file2 | ||||
? file2 | ||||
$ rm file2 | ||||
$ hg qpush -q second-patch | ||||
now at: second-patch | ||||
(test that editor is invoked and commit message is saved into | ||||
"last-message.txt") | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [hooks] | ||||
> # this failure occurs after editor invocation | ||||
> pretxncommit.unexpectedabort = false | ||||
> EOF | ||||
$ rm -f .hg/last-message.txt | ||||
FUJIWARA Katsunori
|
r21423 | $ hg status --rev "second-patch^1" -arm | ||
A file2 | ||||
FUJIWARA Katsunori
|
r21236 | $ HGEDITOR="sh $TESTTMP/editor.sh" hg qrefresh -e | ||
==== before editing | ||||
Fifth commit message | ||||
This is the 5th log message | ||||
FUJIWARA Katsunori
|
r21423 | |||
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 | ||||
FUJIWARA Katsunori
|
r21236 | ==== | ||
Laurent Charignon
|
r26998 | note: commit message saved in .hg/last-message.txt | ||
Martin von Zweigbergk
|
r45227 | note: use 'hg commit --logfile .hg/last-message.txt --edit' to reuse it | ||
FUJIWARA Katsunori
|
r21236 | transaction abort! | ||
rollback completed | ||||
timeless@mozdev.org
|
r26780 | qrefresh interrupted while patch was popped! (revert --all, qpush to recover) | ||
FUJIWARA Katsunori
|
r21236 | abort: pretxncommit.unexpectedabort hook exited with status 1 | ||
[255] | ||||
$ cat .hg/last-message.txt | ||||
Fifth commit message | ||||
This is the 5th log message | ||||
FUJIWARA Katsunori
|
r21423 | |||
FUJIWARA Katsunori
|
r21236 | test saving last-message.txt | ||
FUJIWARA Katsunori
|
r26750 | |||
Mads Kiilerich
|
r30332 | Test visibility of in-memory dirstate changes outside transaction to | ||
FUJIWARA Katsunori
|
r26750 | external process | ||
$ cat > $TESTTMP/checkvisibility.sh <<EOF | ||||
> echo "====" | ||||
> hg parents --template "{rev}:{node|short}\n" | ||||
> hg status -arm | ||||
> echo "====" | ||||
> EOF | ||||
== test visibility to external editor | ||||
$ hg update -C -q first-patch | ||||
$ rm -f file2 | ||||
$ hg qpush -q second-patch --config hooks.pretxncommit.unexpectedabort= | ||||
now at: second-patch | ||||
$ echo bbbb >> file2 | ||||
$ sh "$TESTTMP/checkvisibility.sh" | ||||
==== | ||||
1:e30108269082 | ||||
M file2 | ||||
==== | ||||
Matt Harbison
|
r27055 | $ HGEDITOR="sh \"$TESTTMP/checkvisibility.sh\"" hg qrefresh -e | ||
FUJIWARA Katsunori
|
r26750 | ==== | ||
0:25e397dabed2 | ||||
A file2 | ||||
==== | ||||
Laurent Charignon
|
r26998 | note: commit message saved in .hg/last-message.txt | ||
Martin von Zweigbergk
|
r45227 | note: use 'hg commit --logfile .hg/last-message.txt --edit' to reuse it | ||
FUJIWARA Katsunori
|
r26750 | transaction abort! | ||
rollback completed | ||||
timeless@mozdev.org
|
r26780 | qrefresh interrupted while patch was popped! (revert --all, qpush to recover) | ||
FUJIWARA Katsunori
|
r26750 | abort: pretxncommit.unexpectedabort hook exited with status 1 | ||
[255] | ||||
(rebuilding at failure of qrefresh bases on rev #0, and it causes | ||||
dropping status of "file2") | ||||
$ sh "$TESTTMP/checkvisibility.sh" | ||||
==== | ||||
0:25e397dabed2 | ||||
==== | ||||
FUJIWARA Katsunori
|
r26751 | |||
== test visibility to precommit external hook | ||||
$ hg update -C -q | ||||
$ rm -f file2 | ||||
$ hg qpush -q second-patch --config hooks.pretxncommit.unexpectedabort= | ||||
now at: second-patch | ||||
$ echo bbbb >> file2 | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [hooks] | ||||
> precommit.checkvisibility = sh "$TESTTMP/checkvisibility.sh" | ||||
> EOF | ||||
$ sh "$TESTTMP/checkvisibility.sh" | ||||
==== | ||||
1:e30108269082 | ||||
M file2 | ||||
==== | ||||
$ hg qrefresh | ||||
==== | ||||
0:25e397dabed2 | ||||
A file2 | ||||
==== | ||||
transaction abort! | ||||
rollback completed | ||||
timeless@mozdev.org
|
r26780 | qrefresh interrupted while patch was popped! (revert --all, qpush to recover) | ||
FUJIWARA Katsunori
|
r26751 | abort: pretxncommit.unexpectedabort hook exited with status 1 | ||
[255] | ||||
$ sh "$TESTTMP/checkvisibility.sh" | ||||
==== | ||||
0:25e397dabed2 | ||||
==== | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [hooks] | ||||
> precommit.checkvisibility = | ||||
> EOF | ||||
== test visibility to pretxncommit external hook | ||||
$ hg update -C -q | ||||
$ rm -f file2 | ||||
$ hg qpush -q second-patch --config hooks.pretxncommit.unexpectedabort= | ||||
now at: second-patch | ||||
$ echo bbbb >> file2 | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [hooks] | ||||
> pretxncommit.checkvisibility = sh "$TESTTMP/checkvisibility.sh" | ||||
> # make checkvisibility run before unexpectedabort | ||||
> priority.pretxncommit.checkvisibility = 10 | ||||
> EOF | ||||
$ sh "$TESTTMP/checkvisibility.sh" | ||||
==== | ||||
1:e30108269082 | ||||
M file2 | ||||
==== | ||||
$ hg qrefresh | ||||
==== | ||||
0:25e397dabed2 | ||||
A file2 | ||||
==== | ||||
transaction abort! | ||||
rollback completed | ||||
timeless@mozdev.org
|
r26780 | qrefresh interrupted while patch was popped! (revert --all, qpush to recover) | ||
FUJIWARA Katsunori
|
r26751 | abort: pretxncommit.unexpectedabort hook exited with status 1 | ||
[255] | ||||
$ sh "$TESTTMP/checkvisibility.sh" | ||||
==== | ||||
0:25e397dabed2 | ||||
==== | ||||
$ cat >> .hg/hgrc <<EOF | ||||
> [hooks] | ||||
> pretxncommit.checkvisibility = | ||||
> EOF | ||||