Mercurial > hg
annotate tests/test-mq-qrefresh-replace-log-message.t @ 26631:e077ce385609
localrepo: restore dirstate to one before rollbacking if not parent-gone
'localrepository.rollback()' explicilty restores dirstate, only if at
least one of current parents of the working directory is removed at
rollbacking (a.k.a "parent-gone").
After DirstateTransactionPlan, 'dirstate.write()' will cause marking
'.hg/dirstate' as a file to be restored at rollbacking.
https://mercurial.selenic.com/wiki/DirstateTransactionPlan
Then, 'transaction.rollback()' restores '.hg/dirstate' regardless of
parents of the working directory at that time, and this causes
unexpected dirstate changes if not "parent-gone" (e.g. "hg update" to
another branch after "hg commit" or so, then "hg rollback").
To avoid such situation, this patch restores dirstate to one before
rollbacking if not "parent-gone".
before:
b1. restore dirstate explicitly, if "parent-gone"
after:
a1. save dirstate before actual rollbacking via dirstateguard
a2. restore dirstate via 'transaction.rollback()'
a3. if "parent-gone"
- discard backup (a1)
- restore dirstate from 'undo.dirstate'
a4. otherwise, restore dirstate from backup (a1)
Even though restoring dirstate at (a3) after (a2) seems redundant,
this patch keeps this existing code path, because:
- it isn't ensured that 'dirstate.write()' was invoked at least once
while transaction running
If not, '.hg/dirstate' isn't restored at (a2).
In addition to it, rude 3rd party extension invoking
'dirstate.write()' without 'repo' while transaction running (see
subsequent patches for detail) may break consistency of a file
backup-ed by transaction.
- this patch mainly focuses on changes for DirstateTransactionPlan
Restoring dirstate at (a3) itself should be cheaper enough than
rollbacking itself. Redundancy will be removed in next step.
Newly added test is almost meaningless at this point. It will be used
to detect regression while implementing delayed dirstate write out.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Tue, 13 Oct 2015 12:25:43 -0700 |
parents | 56b2bcea2529 |
children | 9f9ec4abe700 |
rev | line source |
---|---|
17478 | 1 Environment setup for MQ |
2694
0fb28dbf0dc7
MQ: uniformise message and logfile option.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
2 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
3 $ echo "[extensions]" >> $HGRCPATH |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
4 $ echo "mq=" >> $HGRCPATH |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
5 $ hg init |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
6 $ hg qinit |
2694
0fb28dbf0dc7
MQ: uniformise message and logfile option.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
7 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
8 Should fail if no patches applied |
21423
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
9 (this tests also that editor is not invoked if '--edit' is not |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
10 specified) |
2694
0fb28dbf0dc7
MQ: uniformise message and logfile option.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
11 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
12 $ hg qrefresh |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
13 no patches applied |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
14 [1] |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
15 $ hg qrefresh -e |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
16 no patches applied |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
17 [1] |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
18 $ hg qnew -m "First commit message" first-patch |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
19 $ echo aaaa > file |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
20 $ hg add file |
21423
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
21 $ HGEDITOR=cat hg qrefresh |
5334
448eb46d4d84
mq: fix qrefresh -e with no patches applied
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents:
4659
diff
changeset
|
22 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
23 Should display 'First commit message' |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
24 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
25 $ hg log -l1 --template "{desc}\n" |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
26 First commit message |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
27 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
28 Testing changing message with -m |
21924
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
29 (this tests also that '--edit' can be used with '--message', and |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
30 that '[committemplate] changeset' definition and commit log specific |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
31 template keyword 'extramsg' work well) |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
32 |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
33 $ cat >> .hg/hgrc <<EOF |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
34 > [committemplate] |
22013
de5cee8ba088
cmdutil: use '[committemplate]' section like as map file for style definition
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21930
diff
changeset
|
35 > listupfiles = {file_adds % |
de5cee8ba088
cmdutil: use '[committemplate]' section like as map file for style definition
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21930
diff
changeset
|
36 > "HG: added {file}\n" }{file_mods % |
de5cee8ba088
cmdutil: use '[committemplate]' section like as map file for style definition
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21930
diff
changeset
|
37 > "HG: changed {file}\n" }{file_dels % |
de5cee8ba088
cmdutil: use '[committemplate]' section like as map file for style definition
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21930
diff
changeset
|
38 > "HG: removed {file}\n" }{if(files, "", |
de5cee8ba088
cmdutil: use '[committemplate]' section like as map file for style definition
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21930
diff
changeset
|
39 > "HG: no files changed\n")} |
de5cee8ba088
cmdutil: use '[committemplate]' section like as map file for style definition
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21930
diff
changeset
|
40 > |
21924
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
41 > changeset = HG: this is customized commit template |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
42 > {desc}\n\n |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
43 > HG: Enter commit message. Lines beginning with 'HG:' are removed. |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
44 > HG: {extramsg} |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
45 > HG: -- |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
46 > HG: user: {author} |
22013
de5cee8ba088
cmdutil: use '[committemplate]' section like as map file for style definition
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21930
diff
changeset
|
47 > HG: branch '{branch}'\n{listupfiles} |
21924
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
48 > EOF |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
49 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
50 $ echo bbbb > file |
21713
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
51 $ HGEDITOR=cat hg qrefresh -m "Second commit message" -e |
21924
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
52 HG: this is customized commit template |
21713
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
53 Second commit message |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
54 |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
55 |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
56 HG: Enter commit message. Lines beginning with 'HG:' are removed. |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
57 HG: Leave message empty to use default message. |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
58 HG: -- |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
59 HG: user: test |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
60 HG: branch 'default' |
7a51bced398b
qrefresh: allow to specify '--message/'--logfile' and '--edit' at the same time
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21423
diff
changeset
|
61 HG: added file |
2694
0fb28dbf0dc7
MQ: uniformise message and logfile option.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
62 |
21924
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
63 $ cat >> .hg/hgrc <<EOF |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
64 > # disable customizing for subsequent tests |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
65 > [committemplate] |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
66 > changeset = |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
67 > EOF |
5375ba75df40
cmdutil: make commit message shown in text editor customizable by template
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21713
diff
changeset
|
68 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
69 Should display 'Second commit message' |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
70 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
71 $ hg log -l1 --template "{desc}\n" |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
72 Second commit message |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
73 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
74 Testing changing message with -l |
2694
0fb28dbf0dc7
MQ: uniformise message and logfile option.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
75 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
76 $ echo "Third commit message" > logfile |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
77 $ echo " This is the 3rd log message" >> logfile |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
78 $ echo bbbb > file |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
79 $ hg qrefresh -l logfile |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
80 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
81 Should display 'Third commit message\\\n This is the 3rd log message' |
2694
0fb28dbf0dc7
MQ: uniformise message and logfile option.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
82 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
83 $ hg log -l1 --template "{desc}\n" |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
84 Third commit message |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
85 This is the 3rd log message |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
86 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
87 Testing changing message with -l- |
2694
0fb28dbf0dc7
MQ: uniformise message and logfile option.
"Mathieu Clabaut <mathieu.clabaut@gmail.com>"
parents:
diff
changeset
|
88 |
12468
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
89 $ hg qnew -m "First commit message" second-patch |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
90 $ echo aaaa > file2 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
91 $ hg add file2 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
92 $ echo bbbb > file2 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
93 $ (echo "Fifth commit message"; echo " This is the 5th log message") | hg qrefresh -l- |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
94 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
95 Should display 'Fifth commit message\\\n This is the 5th log message' |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
96 |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
97 $ hg log -l1 --template "{desc}\n" |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
98 Fifth commit message |
d8bf747d2e29
tests: unify test-mq-qrefresh-replace-log-message
Matt Mackall <mpm@selenic.com>
parents:
5334
diff
changeset
|
99 This is the 5th log message |
21236
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
100 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
101 Test saving last-message.txt: |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
102 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
103 $ cat > $TESTTMP/editor.sh << EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
104 > echo "==== before editing" |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
105 > cat \$1 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
106 > echo "====" |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
107 > (echo; echo "test saving last-message.txt") >> \$1 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
108 > EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
109 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
110 $ cat > $TESTTMP/commitfailure.py <<EOF |
26587
56b2bcea2529
error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22013
diff
changeset
|
111 > from mercurial import error |
21236
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
112 > def reposetup(ui, repo): |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
113 > class commitfailure(repo.__class__): |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
114 > def commit(self, *args, **kwargs): |
26587
56b2bcea2529
error: get Abort from 'error' instead of 'util'
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
22013
diff
changeset
|
115 > raise error.Abort('emulating unexpected abort') |
21236
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
116 > repo.__class__ = commitfailure |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
117 > EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
118 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
119 $ cat >> .hg/hgrc <<EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
120 > [extensions] |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
121 > # this failure occurs before editor invocation |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
122 > commitfailure = $TESTTMP/commitfailure.py |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
123 > EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
124 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
125 $ hg qapplied |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
126 first-patch |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
127 second-patch |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
128 $ hg tip --template "{files}\n" |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
129 file2 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
130 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
131 (test that editor is not invoked before transaction starting) |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
132 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
133 $ rm -f .hg/last-message.txt |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
134 $ HGEDITOR="sh $TESTTMP/editor.sh" hg qrefresh -e |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
135 refresh interrupted while patch was popped! (revert --all, qpush to recover) |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
136 abort: emulating unexpected abort |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
137 [255] |
21930
a5168eb9b2bc
tests: cat error messages are different on Solaris
Danek Duvall <danek.duvall@oracle.com>
parents:
21924
diff
changeset
|
138 $ test -f .hg/last-message.txt |
21236
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
139 [1] |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
140 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
141 (reset applied patches and directory status) |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
142 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
143 $ cat >> .hg/hgrc <<EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
144 > [extensions] |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
145 > commitfailure = ! |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
146 > EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
147 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
148 $ hg qapplied |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
149 first-patch |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
150 $ hg status -A file2 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
151 ? file2 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
152 $ rm file2 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
153 $ hg qpush -q second-patch |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
154 now at: second-patch |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
155 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
156 (test that editor is invoked and commit message is saved into |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
157 "last-message.txt") |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
158 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
159 $ cat >> .hg/hgrc <<EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
160 > [hooks] |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
161 > # this failure occurs after editor invocation |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
162 > pretxncommit.unexpectedabort = false |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
163 > EOF |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
164 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
165 $ rm -f .hg/last-message.txt |
21423
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
166 $ hg status --rev "second-patch^1" -arm |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
167 A file2 |
21236
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
168 $ HGEDITOR="sh $TESTTMP/editor.sh" hg qrefresh -e |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
169 ==== before editing |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
170 Fifth commit message |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
171 This is the 5th log message |
21423
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
172 |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
173 |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
174 HG: Enter commit message. Lines beginning with 'HG:' are removed. |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
175 HG: Leave message empty to use default message. |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
176 HG: -- |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
177 HG: user: test |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
178 HG: branch 'default' |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
179 HG: added file2 |
21236
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
180 ==== |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
181 transaction abort! |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
182 rollback completed |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
183 note: commit message saved in .hg/last-message.txt |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
184 refresh interrupted while patch was popped! (revert --all, qpush to recover) |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
185 abort: pretxncommit.unexpectedabort hook exited with status 1 |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
186 [255] |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
187 $ cat .hg/last-message.txt |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
188 Fifth commit message |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
189 This is the 5th log message |
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
190 |
21423
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
191 |
7d408720453d
mq: use the editor gotten by "getcommiteditor()" instead of "ui.edit()" (qrefresh/qfold)
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
21236
diff
changeset
|
192 |
21236
49148d7868df
qrefresh: use "editor" argument of "commit()" instead of explicit "ui.edit()"
FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
parents:
17478
diff
changeset
|
193 test saving last-message.txt |