annotate tests/test-rollback.t @ 50125:81870c92c293

rollback: detect "parentgone" case earlier Detecting this earlier will help us to affect the rollback process sooner, which will help the next changesets. To keep things simple, we degrade the behavior a bit when the `undo.desc` is missing. However since `hg rollback` is not supposed to be used and the `undo.desc` file have been introduced in mercurial 1.6 (2010). I think this is an acceptable evil.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 16 Feb 2023 00:26:24 +0100
parents b35fb0e5b8d6
children 11e6eee4b063
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
1 setup repo
13956
ffb5c09ba822 tests: remove redundant mkdir
Martin Geisler <mg@lazybytes.net>
parents: 13446
diff changeset
2 $ hg init t
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
3 $ cd t
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
4 $ echo a > a
50042
dbcc45221c1f test: explicitly "add" file before some commit in test-rollback.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 49920
diff changeset
5 $ hg add a
dbcc45221c1f test: explicitly "add" file before some commit in test-rollback.t
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 49920
diff changeset
6 $ hg commit -m 'add a'
49920
2f2682f40ea0 tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents: 46485
diff changeset
7 $ hg verify -q
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
8 $ hg parents
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
9 changeset: 0:1f0dee641bb7
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
10 tag: tip
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
11 user: test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
12 date: Thu Jan 01 00:00:00 1970 +0000
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
13 summary: add a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
14
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
15
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
16 rollback to null revision
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
17 $ hg status
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
18 $ hg rollback
13446
1e497df514e2 rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents: 13185
diff changeset
19 repository tip rolled back to revision -1 (undo commit)
1e497df514e2 rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents: 13185
diff changeset
20 working directory now based on revision -1
49920
2f2682f40ea0 tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents: 46485
diff changeset
21 $ hg verify -q
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
22 $ hg parents
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
23 $ hg status
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
24 A a
5814
dd5a501cb97f restore branch after rollback (issue 902)
Alexandre Vassalotti <mercurial-bugs@selenic.com>
parents: 2227
diff changeset
25
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
26 Two changesets this time so we rollback to a real changeset
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
27 $ hg commit -m'add a again'
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
28 $ echo a >> a
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
29 $ hg commit -m'modify a'
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
30
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
31 Test issue 902 (current branch is preserved)
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
32 $ hg branch test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
33 marked working directory as branch test
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15187
diff changeset
34 (branches are permanent and global, did you want a bookmark?)
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
35 $ hg rollback
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
36 repository tip rolled back to revision 0 (undo commit)
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
37 working directory now based on revision 0
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
38 $ hg branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
39 default
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
40
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
41 Test issue 1635 (commit message saved)
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
42 $ cat .hg/last-message.txt ; echo
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
43 modify a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
44
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
45 Test rollback of hg before issue 902 was fixed
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
46
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
47 $ hg commit -m "test3"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
48 $ hg branch test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
49 marked working directory as branch test
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15187
diff changeset
50 (branches are permanent and global, did you want a bookmark?)
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
51 $ rm .hg/undo.branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
52 $ hg rollback
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
53 repository tip rolled back to revision 0 (undo commit)
15130
3d44e68360a6 rollback: refactor for readability; cosmetics.
Greg Ward <greg@gerg.ca>
parents: 15108
diff changeset
54 named branch could not be reset: current branch is still 'test'
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
55 working directory now based on revision 0
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
56 $ hg branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
57 test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
58
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
59 working dir unaffected by rollback: do not restore dirstate et. al.
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
60 $ hg log --template '{rev} {branch} {desc|firstline}\n'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
61 0 default add a again
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
62 $ hg status
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
63 M a
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
64 $ hg bookmark foo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
65 $ hg commit -m'modify a again'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
66 $ echo b > b
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
67 $ hg bookmark bar -r default #making bar active, before the transaction
50123
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
68 $ hg log -G --template '{rev} [{branch}] ({bookmarks}) {desc|firstline}\n'
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
69 @ 1 [test] (foo) modify a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
70 |
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
71 o 0 [default] (bar) add a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
72
50124
b35fb0e5b8d6 rollback: avoid a `hg commit --addremove` at a critical point
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50123
diff changeset
73 $ hg add b
b35fb0e5b8d6 rollback: avoid a `hg commit --addremove` at a critical point
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50123
diff changeset
74 $ hg commit -m'add b'
50123
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
75 $ hg log -G --template '{rev} [{branch}] ({bookmarks}) {desc|firstline}\n'
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
76 @ 2 [test] (foo) add b
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
77 |
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
78 o 1 [test] () modify a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
79 |
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
80 o 0 [default] (bar) add a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
81
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
82 $ hg update bar
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
83 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
84 (activating bookmark bar)
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
85 $ cat .hg/undo.branch ; echo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
86 test
50123
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
87 $ hg log -G --template '{rev} [{branch}] ({bookmarks}) {desc|firstline}\n'
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
88 o 2 [test] (foo) add b
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
89 |
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
90 o 1 [test] () modify a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
91 |
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
92 @ 0 [default] (bar) add a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
93
50122
ebb8648483db rollback: show that the safety works in a associated test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50042
diff changeset
94 $ hg rollback
ebb8648483db rollback: show that the safety works in a associated test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50042
diff changeset
95 abort: rollback of last commit while not checked out may lose data
ebb8648483db rollback: show that the safety works in a associated test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50042
diff changeset
96 (use -f to force)
ebb8648483db rollback: show that the safety works in a associated test
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50042
diff changeset
97 [255]
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
98 $ hg rollback -f
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
99 repository tip rolled back to revision 1 (undo commit)
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
100 $ hg id -n
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
101 0
50123
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
102 $ hg log -G --template '{rev} [{branch}] ({bookmarks}) {desc|firstline}\n'
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
103 o 1 [test] (foo) modify a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
104 |
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
105 @ 0 [default] (bar) add a again
059910ac7b76 rollback: display some graphlog before/after a test piece
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50122
diff changeset
106
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
107 $ hg branch
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
108 default
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
109 $ cat .hg/bookmarks.current ; echo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
110 bar
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
111 $ hg bookmark --delete foo bar
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
112
22183
4dd9f606d0a6 tests: fixup issue markers to make check-commit happy
Matt Mackall <mpm@selenic.com>
parents: 21404
diff changeset
113 rollback by pretxncommit saves commit message (issue1635)
9934
720f70b720d3 commit: save commit message so it's not destroyed by rollback.
Greg Ward <greg-hg@gerg.ca>
parents: 6058
diff changeset
114
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
115 $ echo a >> a
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
116 $ hg --config hooks.pretxncommit=false commit -m"precious commit message"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
117 transaction abort!
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
118 rollback completed
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
119 abort: pretxncommit hook exited with status * (glob)
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44845
diff changeset
120 [40]
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
121 $ cat .hg/last-message.txt ; echo
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
122 precious commit message
13185
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
123
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
124 same thing, but run $EDITOR
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
125
16901
5b89700cce30 tests: consistently use a HGEDITOR pattern that works with msys on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
126 $ cat > editor.sh << '__EOF__'
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
127 > echo "another precious commit message" > "$1"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
128 > __EOF__
16901
5b89700cce30 tests: consistently use a HGEDITOR pattern that works with msys on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
129 $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg --config hooks.pretxncommit=false commit 2>&1
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
130 transaction abort!
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
131 rollback completed
41384
57c462db87fd localrepo: use context manager for transaction in commit()
Martin von Zweigbergk <martinvonz@google.com>
parents: 40591
diff changeset
132 note: commit message saved in .hg/last-message.txt
44845
c6d31e659a28 commit: tell user what to do with .hg/last-message.txt
Martin von Zweigbergk <martinvonz@google.com>
parents: 44389
diff changeset
133 note: use 'hg commit --logfile .hg/last-message.txt --edit' to reuse it
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
134 abort: pretxncommit hook exited with status * (glob)
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44845
diff changeset
135 [40]
12642
bb35840e965c tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents: 12485
diff changeset
136 $ cat .hg/last-message.txt
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
137 another precious commit message
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
138
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
139 test rollback on served repository
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
140
16916
c76175cd1415 test-rollback: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 16913
diff changeset
141 #if serve
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
142 $ hg commit -m "precious commit message"
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
143 $ hg serve -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
144 $ cat hg.pid >> $DAEMON_PIDS
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
145 $ cd ..
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
146 $ hg clone http://localhost:$HGPORT u
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
147 requesting all changes
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
148 adding changesets
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
149 adding manifests
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
150 adding file changes
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
151 added 3 changesets with 2 changes to 1 files (+1 heads)
34661
eb586ed5d8ce transaction-summary: show the range of new revisions upon pull/unbundle (BC)
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 33668
diff changeset
152 new changesets 23b0221f3370:068774709090
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
153 updating to branch default
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
154 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
155 $ cd u
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
156 $ hg id default
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
157 068774709090
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
158
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
159 now rollback and observe that 'hg serve' reloads the repository and
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
160 presents the correct tip changeset:
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
161
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
162 $ hg -R ../t rollback
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
163 repository tip rolled back to revision 1 (undo commit)
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
164 working directory now based on revision 0
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
165 $ hg id default
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
166 791dd2169706
31773
3ed26ba54685 test-serve: kill daemons before deleting the access and error logs
Matt Harbison <matt_harbison@yahoo.com>
parents: 29086
diff changeset
167
3ed26ba54685 test-serve: kill daemons before deleting the access and error logs
Matt Harbison <matt_harbison@yahoo.com>
parents: 29086
diff changeset
168 $ killdaemons.py
16916
c76175cd1415 test-rollback: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 16913
diff changeset
169 #endif
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
170
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
171 update to older changeset and then refuse rollback, because
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
172 that would lose data (issue2998)
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
173 $ cd ../t
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
174 $ hg -q update
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
175 $ rm `hg status -un`
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
176 $ template='{rev}:{node|short} [{branch}] {desc|firstline}\n'
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
177 $ echo 'valuable new file' > b
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
178 $ echo 'valuable modification' >> a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
179 $ hg commit -A -m'a valuable change'
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
180 adding b
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
181 $ hg update 0
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
182 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
183 $ hg rollback
15187
0292f88d3b86 rollback: use a hint for force
Matt Mackall <mpm@selenic.com>
parents: 15183
diff changeset
184 abort: rollback of last commit while not checked out may lose data
0292f88d3b86 rollback: use a hint for force
Matt Mackall <mpm@selenic.com>
parents: 15183
diff changeset
185 (use -f to force)
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
186 [255]
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
187 $ hg tip -q
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
188 2:4d9cd3795eea
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
189 $ hg rollback -f
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
190 repository tip rolled back to revision 1 (undo commit)
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
191 $ hg status
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
192 $ hg log --removed b # yep, it's gone
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
193
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
194 same again, but emulate an old client that doesn't write undo.desc
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
195 $ hg -q update
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
196 $ echo 'valuable modification redux' >> a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
197 $ hg commit -m'a valuable change redux'
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
198 $ rm .hg/undo.desc
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
199 $ hg update 0
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
200 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
201 $ hg rollback
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
202 rolling back unknown transaction
50125
81870c92c293 rollback: detect "parentgone" case earlier
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 50124
diff changeset
203 working directory now based on revision 0
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
204 $ cat a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
205 a
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16901
diff changeset
206
20524
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
207 corrupt journal test
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
208 $ echo "foo" > .hg/store/journal
49920
2f2682f40ea0 tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents: 46485
diff changeset
209 $ hg recover --verify -q
20524
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
210 couldn't read journal entry 'foo\n'!
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
211
29086
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
212 rollback disabled by config
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
213 $ cat >> $HGRCPATH <<EOF
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
214 > [ui]
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
215 > rollback = false
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
216 > EOF
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
217 $ echo narf >> pinky-sayings.txt
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
218 $ hg add pinky-sayings.txt
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
219 $ hg ci -m 'First one.'
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
220 $ hg rollback
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
221 abort: rollback is disabled because it is unsafe
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
222 (see `hg help -v rollback` for information)
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
223 [255]
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
224
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
225 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
226
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
227 I/O errors on stdio are handled properly (issue5658)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
228
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
229 $ cat > badui.py << EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
230 > import errno
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
231 > from mercurial.i18n import _
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
232 > from mercurial import (
36674
7bc33d677c0c tests: fix various test-check-module-imports.t violations
Augie Fackler <augie@google.com>
parents: 36516
diff changeset
233 > error,
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
234 > registrar,
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
235 > ui as uimod,
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
236 > )
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
237 >
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
238 > configtable = {}
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
239 > configitem = registrar.configitem(configtable)
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
240 >
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
241 > configitem(b'ui', b'ioerrors',
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
242 > default=list,
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
243 > )
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
244 >
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
245 > def pretxncommit(ui, repo, **kwargs):
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
246 > ui.warn(b'warn during pretxncommit\n')
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
247 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
248 > def pretxnclose(ui, repo, **kwargs):
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
249 > ui.warn(b'warn during pretxnclose\n')
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
250 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
251 > def txnclose(ui, repo, **kwargs):
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
252 > ui.warn(b'warn during txnclose\n')
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
253 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
254 > def txnabort(ui, repo, **kwargs):
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
255 > ui.warn(b'warn during abort\n')
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
256 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
257 > class fdproxy(object):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
258 > def __init__(self, ui, o):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
259 > self._ui = ui
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
260 > self._o = o
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
261 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
262 > def __getattr__(self, attr):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
263 > return getattr(self._o, attr)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
264 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
265 > def write(self, msg):
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
266 > errors = set(self._ui.configlist(b'ui', b'ioerrors'))
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
267 > pretxncommit = msg == b'warn during pretxncommit\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
268 > pretxnclose = msg == b'warn during pretxnclose\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
269 > txnclose = msg == b'warn during txnclose\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
270 > txnabort = msg == b'warn during abort\n'
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
271 > msgabort = msg == _(b'transaction abort!\n')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
272 > msgrollback = msg == _(b'rollback completed\n')
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
273 >
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
274 > if pretxncommit and b'pretxncommit' in errors:
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
275 > raise IOError(errno.EPIPE, 'simulated epipe')
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
276 > if pretxnclose and b'pretxnclose' in errors:
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
277 > raise IOError(errno.EIO, 'simulated eio')
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
278 > if txnclose and b'txnclose' in errors:
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
279 > raise IOError(errno.EBADF, 'simulated badf')
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
280 > if txnabort and b'txnabort' in errors:
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
281 > raise IOError(errno.EPIPE, 'simulated epipe')
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
282 > if msgabort and b'msgabort' in errors:
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
283 > raise IOError(errno.EBADF, 'simulated ebadf')
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
284 > if msgrollback and b'msgrollback' in errors:
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
285 > raise IOError(errno.EIO, 'simulated eio')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
286 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
287 > return self._o.write(msg)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
288 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
289 > def uisetup(ui):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
290 > class badui(ui.__class__):
40591
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39506
diff changeset
291 > def _write(self, dest, *args, **kwargs):
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
292 > olderr = self.ferr
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
293 > try:
40591
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39506
diff changeset
294 > if dest is self.ferr:
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39506
diff changeset
295 > self.ferr = dest = fdproxy(self, olderr)
c2aea007130b ui: add inner function to select write destination
Yuya Nishihara <yuya@tcha.org>
parents: 39506
diff changeset
296 > return super(badui, self)._write(dest, *args, **kwargs)
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
297 > finally:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
298 > self.ferr = olderr
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
299 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
300 > ui.__class__ = badui
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
301 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
302 > def reposetup(ui, repo):
36516
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
303 > ui.setconfig(b'hooks', b'pretxnclose.badui', pretxnclose, b'badui')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
304 > ui.setconfig(b'hooks', b'txnclose.badui', txnclose, b'badui')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
305 > ui.setconfig(b'hooks', b'pretxncommit.badui', pretxncommit, b'badui')
fb9b8004e1b0 py3: add b'' prefixes in tests/test-rollback.t
Pulkit Goyal <7895pulkit@gmail.com>
parents: 34766
diff changeset
306 > ui.setconfig(b'hooks', b'txnabort.badui', txnabort, b'badui')
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
307 > EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
308
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
309 $ cat >> $HGRCPATH << EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
310 > [extensions]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
311 > badui = $TESTTMP/badui.py
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
312 > EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
313
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
314 An I/O error during pretxncommit is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
315
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
316 $ hg init ioerror-pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
317 $ cd ioerror-pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
318 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
319 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
320 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
321 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
322 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
323 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
324 $ hg --config ui.ioerrors=pretxncommit commit -m 'error during pretxncommit'
33668
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
325 warn during pretxnclose
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
326 warn during txnclose
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
327
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
328 $ hg commit -m 'commit 1'
33668
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
329 nothing changed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
330 [1]
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
331
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
332 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
333
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
334 An I/O error during pretxnclose is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
335
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
336 $ hg init ioerror-pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
337 $ cd ioerror-pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
338 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
339 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
340 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
341 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
342 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
343
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
344 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
345 $ hg --config ui.ioerrors=pretxnclose commit -m 'error during pretxnclose'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
346 warn during pretxncommit
33668
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
347 warn during txnclose
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
348
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
349 $ hg commit -m 'commit 1'
33668
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
350 nothing changed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
351 [1]
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
352
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
353 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
354
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
355 An I/O error during txnclose is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
356
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
357 $ hg init ioerror-txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
358 $ cd ioerror-txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
359 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
360 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
361 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
362 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
363 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
364
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
365 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
366 $ hg --config ui.ioerrors=txnclose commit -m 'error during txnclose'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
367 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
368 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
369
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
370 $ hg commit -m 'commit 1'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
371 nothing changed
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
372 [1]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
373
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
374 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
375
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
376 An I/O error writing "transaction abort" is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
377
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
378 $ hg init ioerror-msgabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
379 $ cd ioerror-msgabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
380
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
381 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
382 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
383 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
384 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
385 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
386
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
387 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
388 $ hg --config ui.ioerrors=msgabort --config hooks.pretxncommit=false commit -m 'error during abort message'
33668
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
389 warn during abort
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
390 rollback completed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
391 abort: pretxncommit hook exited with status 1
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44845
diff changeset
392 [40]
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
393
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
394 $ hg commit -m 'commit 1'
33668
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
395 warn during pretxncommit
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
396 warn during pretxnclose
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33667
diff changeset
397 warn during txnclose
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
398
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
399 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
400
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
401 An I/O error during txnabort should still result in rollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
402
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
403 $ hg init ioerror-txnabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
404 $ cd ioerror-txnabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
405
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
406 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
407 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
408 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
409 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
410 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
411
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
412 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
413 $ hg --config ui.ioerrors=txnabort --config hooks.pretxncommit=false commit -m 'error during abort'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
414 transaction abort!
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
415 rollback completed
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
416 abort: pretxncommit hook exited with status 1
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44845
diff changeset
417 [40]
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
418
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
419 $ hg commit -m 'commit 1'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
420 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
421 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
422 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
423
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
424 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
425
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
426 An I/O error writing "rollback completed" is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
427
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
428 $ hg init ioerror-msgrollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
429 $ cd ioerror-msgrollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
430
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
431 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
432 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
433 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
434 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
435 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
436
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
437 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
438
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
439 $ hg --config ui.ioerrors=msgrollback --config hooks.pretxncommit=false commit -m 'error during rollback message'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
440 transaction abort!
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
441 warn during abort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
442 abort: pretxncommit hook exited with status 1
46485
768056549737 errors: use exit code 40 for when a hook fails
Martin von Zweigbergk <martinvonz@google.com>
parents: 44845
diff changeset
443 [40]
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
444
49920
2f2682f40ea0 tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents: 46485
diff changeset
445 $ hg verify -q
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
446
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
447 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
448
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
449 Multiple I/O errors after transaction open are handled.
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
450 This is effectively what happens if a peer disconnects in the middle
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
451 of a transaction.
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
452
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
453 $ hg init ioerror-multiple
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
454 $ cd ioerror-multiple
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
455 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
456 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
457 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
458 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
459 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
460
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
461 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
462
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
463 $ hg --config ui.ioerrors=pretxncommit,pretxnclose,txnclose,txnabort,msgabort,msgrollback commit -m 'multiple errors'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
464
49920
2f2682f40ea0 tests: use the `--quiet` flag for verify when applicable
Raphaël Gomès <rgomes@octobus.net>
parents: 46485
diff changeset
465 $ hg verify -q
33667
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
466
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31773
diff changeset
467 $ cd ..