annotate tests/test-rollback.t @ 35695:dd672e3d059f

lfs: raise an error if the server sends an unsolicited oid This shouldn't happen. But we shouldn't ignore it if it does, because something else is likely to go wrong.
author Matt Harbison <matt_harbison@yahoo.com>
date Wed, 17 Jan 2018 21:44:32 -0500
parents d957d4475a64
children fb9b8004e1b0
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
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
5 $ hg commit -Am'add a'
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
6 adding a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
7 $ hg verify
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
8 checking changesets
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
9 checking manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
10 crosschecking files in changesets and manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
11 checking files
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
12 1 files, 1 changesets, 1 total revisions
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
13 $ 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
14 changeset: 0:1f0dee641bb7
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
15 tag: tip
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
16 user: test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
17 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
18 summary: add a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
19
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
20
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
21 rollback to null revision
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
22 $ hg status
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
23 $ hg rollback
13446
1e497df514e2 rollback: clarifies the message about the reverted state (issue2628)
Gilles Moris <gilles.moris@free.fr>
parents: 13185
diff changeset
24 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
25 working directory now based on revision -1
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
26 $ hg verify
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
27 checking changesets
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
28 checking manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
29 crosschecking files in changesets and manifests
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
30 checking files
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
31 0 files, 0 changesets, 0 total revisions
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
32 $ hg parents
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
33 $ hg status
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
34 A a
5814
dd5a501cb97f restore branch after rollback (issue 902)
Alexandre Vassalotti <mercurial-bugs@selenic.com>
parents: 2227
diff changeset
35
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 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
37 $ 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
38 $ 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
39 $ hg commit -m'modify a'
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
40
15108
4c1ec0fe59d6 test-rollback: tinker a bit to make it easier to add more tests.
Greg Ward <greg@gerg.ca>
parents: 13959
diff changeset
41 Test issue 902 (current branch is preserved)
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
42 $ hg branch test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
43 marked working directory as branch test
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15187
diff changeset
44 (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
45 $ 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
46 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
47 working directory now based on revision 0
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
48 $ hg branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
49 default
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
50
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
51 Test issue 1635 (commit message saved)
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
52 $ 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
53 modify a
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
54
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
55 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
56
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
57 $ hg commit -m "test3"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
58 $ hg branch test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
59 marked working directory as branch test
15615
41885892796e branch: warn on branching
Matt Mackall <mpm@selenic.com>
parents: 15187
diff changeset
60 (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
61 $ rm .hg/undo.branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
62 $ 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
63 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
64 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
65 working directory now based on revision 0
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
66 $ hg branch
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
67 test
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
68
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
69 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
70 $ 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
71 0 default add a again
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
72 $ hg status
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
73 M a
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
74 $ hg bookmark foo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
75 $ hg commit -m'modify a again'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
76 $ echo b > b
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
77 $ hg bookmark bar -r default #making bar active, before the transaction
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
78 $ hg commit -Am'add b'
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
79 adding b
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
80 $ 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
81 2 test add b
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
82 1 test modify a again
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
83 0 default add a again
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
84 $ hg update bar
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
85 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
86 (activating bookmark bar)
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
87 $ cat .hg/undo.branch ; echo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
88 test
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
89 $ hg rollback -f
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
90 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
91 $ hg id -n
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
92 0
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
93 $ hg branch
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
94 default
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
95 $ cat .hg/bookmarks.current ; echo
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
96 bar
25744
e78a80f8f51e bookmarks: change bookmark within a transaction
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 22183
diff changeset
97 $ hg bookmark --delete foo bar
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
98
22183
4dd9f606d0a6 tests: fixup issue markers to make check-commit happy
Matt Mackall <mpm@selenic.com>
parents: 21404
diff changeset
99 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
100
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
101 $ echo a >> a
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
102 $ hg --config hooks.pretxncommit=false commit -m"precious commit message"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
103 transaction abort!
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
104 rollback completed
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
105 abort: pretxncommit hook exited with status * (glob)
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
106 [255]
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
107 $ cat .hg/last-message.txt ; echo
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
108 precious commit message
13185
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
109
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
110 same thing, but run $EDITOR
c6e00dfcdcb8 tests: clean up test-rollback.t
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 12642
diff changeset
111
16901
5b89700cce30 tests: consistently use a HGEDITOR pattern that works with msys on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
112 $ cat > editor.sh << '__EOF__'
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
113 > echo "another precious commit message" > "$1"
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
114 > __EOF__
16901
5b89700cce30 tests: consistently use a HGEDITOR pattern that works with msys on windows
Mads Kiilerich <mads@kiilerich.com>
parents: 15623
diff changeset
115 $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg --config hooks.pretxncommit=false commit 2>&1
26998
4414d500604f localrepo: put bookmark move following commit in one transaction
Laurent Charignon <lcharignon@fb.com>
parents: 25744
diff changeset
116 note: commit message saved in .hg/last-message.txt
12485
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)
12642
bb35840e965c tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents: 12485
diff changeset
120 [255]
bb35840e965c tests: remove the last traces of $HGTMP
Mads Kiilerich <mads@kiilerich.com>
parents: 12485
diff changeset
121 $ cat .hg/last-message.txt
12485
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
122 another precious commit message
8fdc11fec6ae tests: unify test-rollback
Matt Mackall <mpm@selenic.com>
parents: 12156
diff changeset
123
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
124 test rollback on served repository
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
125
16916
c76175cd1415 test-rollback: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 16913
diff changeset
126 #if serve
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
127 $ hg commit -m "precious commit message"
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
128 $ 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
129 $ cat hg.pid >> $DAEMON_PIDS
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
130 $ cd ..
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
131 $ hg clone http://localhost:$HGPORT u
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
132 requesting all changes
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
133 adding changesets
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
134 adding manifests
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
135 adding file changes
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
136 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: 33755
diff changeset
137 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
138 updating to branch default
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
139 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
140 $ cd u
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
141 $ hg id default
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
142 068774709090
13958
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
143
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
144 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
145 presents the correct tip changeset:
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
146
71f51cc71652 hgweb: detect change based on changelog size too
Martin Geisler <mg@lazybytes.net>
parents: 13957
diff changeset
147 $ hg -R ../t rollback
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
148 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
149 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
150 $ hg id default
15131
7c26ce9edbd2 rollback: only restore dirstate and branch when appropriate.
Greg Ward <greg@gerg.ca>
parents: 15130
diff changeset
151 791dd2169706
31770
3ed26ba54685 test-serve: kill daemons before deleting the access and error logs
Matt Harbison <matt_harbison@yahoo.com>
parents: 29086
diff changeset
152
3ed26ba54685 test-serve: kill daemons before deleting the access and error logs
Matt Harbison <matt_harbison@yahoo.com>
parents: 29086
diff changeset
153 $ killdaemons.py
16916
c76175cd1415 test-rollback: enable for Windows
Adrian Buehlmann <adrian@cadifra.com>
parents: 16913
diff changeset
154 #endif
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
155
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
156 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
157 that would lose data (issue2998)
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
158 $ cd ../t
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
159 $ hg -q update
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
160 $ rm `hg status -un`
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
161 $ 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
162 $ echo 'valuable new file' > b
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
163 $ echo 'valuable modification' >> a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
164 $ 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
165 adding b
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
166 $ hg update 0
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
167 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
168 $ hg rollback
15187
0292f88d3b86 rollback: use a hint for force
Matt Mackall <mpm@selenic.com>
parents: 15183
diff changeset
169 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
170 (use -f to force)
15183
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
171 [255]
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
172 $ hg tip -q
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
173 2:4d9cd3795eea
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
174 $ hg rollback -f
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
175 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
176 $ hg status
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
177 $ 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
178
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
179 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
180 $ hg -q update
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
181 $ echo 'valuable modification redux' >> a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
182 $ 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
183 $ rm .hg/undo.desc
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
184 $ hg update 0
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
185 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
186 $ hg rollback
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
187 rolling back unknown transaction
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
188 $ cat a
59e8bc22506e rollback: avoid unsafe rollback when not at tip (issue2998)
Greg Ward <greg@gerg.ca>
parents: 15131
diff changeset
189 a
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 16901
diff changeset
190
20524
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
191 corrupt journal test
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
192 $ echo "foo" > .hg/store/journal
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
193 $ hg recover
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
194 rolling back interrupted transaction
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
195 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
196 checking changesets
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
197 checking manifests
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
198 crosschecking files in changesets and manifests
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
199 checking files
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
200 1 files, 2 changesets, 2 total revisions
28b8ff84db3f journal: report parsing errors on recover/rollback (issue4172)
Matt Mackall <mpm@selenic.com>
parents: 16916
diff changeset
201
29086
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
202 rollback disabled by config
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
203 $ cat >> $HGRCPATH <<EOF
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
204 > [ui]
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
205 > rollback = false
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
206 > EOF
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
207 $ 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
208 $ 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
209 $ 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
210 $ hg rollback
fe50341de1ff rollback: add a config knob for entirely disabling the command
Augie Fackler <augie@google.com>
parents: 26998
diff changeset
211 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
212 (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
213 [255]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
214
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
215 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
216
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
217 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: 31770
diff changeset
218
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
219 $ cat > badui.py << EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
220 > import errno
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
221 > from mercurial.i18n import _
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
222 > from mercurial import (
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
223 > registrar,
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
224 > error,
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
225 > ui as uimod,
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
226 > )
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
227 >
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
228 > configtable = {}
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
229 > configitem = registrar.configitem(configtable)
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
230 >
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
231 > configitem('ui', 'ioerrors',
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
232 > default=list,
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
233 > )
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
234 >
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
235 > def pretxncommit(ui, repo, **kwargs):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
236 > ui.warn('warn during pretxncommit\n')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
237 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
238 > def pretxnclose(ui, repo, **kwargs):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
239 > ui.warn('warn during pretxnclose\n')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
240 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
241 > def txnclose(ui, repo, **kwargs):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
242 > ui.warn('warn during txnclose\n')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
243 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
244 > def txnabort(ui, repo, **kwargs):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
245 > ui.warn('warn during abort\n')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
246 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
247 > class fdproxy(object):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
248 > def __init__(self, ui, o):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
249 > self._ui = ui
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
250 > self._o = o
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
251 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
252 > def __getattr__(self, attr):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
253 > return getattr(self._o, attr)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
254 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
255 > def write(self, msg):
34766
d957d4475a64 configitems: register the test 'ui.ioerrors' config
Boris Feld <boris.feld@octobus.net>
parents: 34661
diff changeset
256 > errors = set(self._ui.configlist('ui', 'ioerrors'))
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
257 > pretxncommit = msg == 'warn during pretxncommit\n'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
258 > pretxnclose = msg == 'warn during pretxnclose\n'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
259 > txnclose = msg == 'warn during txnclose\n'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
260 > txnabort = msg == 'warn during abort\n'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
261 > msgabort = msg == _('transaction abort!\n')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
262 > msgrollback = msg == _('rollback completed\n')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
263 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
264 > if pretxncommit and 'pretxncommit' in errors:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
265 > raise IOError(errno.EPIPE, 'simulated epipe')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
266 > if pretxnclose and 'pretxnclose' in errors:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
267 > raise IOError(errno.EIO, 'simulated eio')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
268 > if txnclose and 'txnclose' in errors:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
269 > raise IOError(errno.EBADF, 'simulated badf')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
270 > if txnabort and 'txnabort' in errors:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
271 > raise IOError(errno.EPIPE, 'simulated epipe')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
272 > if msgabort and 'msgabort' in errors:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
273 > raise IOError(errno.EBADF, 'simulated ebadf')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
274 > if msgrollback and 'msgrollback' in errors:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
275 > raise IOError(errno.EIO, 'simulated eio')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
276 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
277 > return self._o.write(msg)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
278 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
279 > def uisetup(ui):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
280 > class badui(ui.__class__):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
281 > def write_err(self, *args, **kwargs):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
282 > olderr = self.ferr
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
283 > try:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
284 > self.ferr = fdproxy(self, olderr)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
285 > return super(badui, self).write_err(*args, **kwargs)
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
286 > finally:
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
287 > self.ferr = olderr
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
288 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
289 > ui.__class__ = badui
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
290 >
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
291 > def reposetup(ui, repo):
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
292 > ui.setconfig('hooks', 'pretxnclose.badui', pretxnclose, 'badui')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
293 > ui.setconfig('hooks', 'txnclose.badui', txnclose, 'badui')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
294 > ui.setconfig('hooks', 'pretxncommit.badui', pretxncommit, 'badui')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
295 > ui.setconfig('hooks', 'txnabort.badui', txnabort, 'badui')
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
296 > EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
297
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
298 $ cat >> $HGRCPATH << EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
299 > [extensions]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
300 > badui = $TESTTMP/badui.py
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
301 > EOF
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
302
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
303 An I/O error during pretxncommit is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
304
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
305 $ hg init ioerror-pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
306 $ cd ioerror-pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
307 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
308 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
309 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
310 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
311 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
312 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
313 $ hg --config ui.ioerrors=pretxncommit commit -m 'error during pretxncommit'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
314 warn during pretxnclose
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
315 warn during txnclose
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
316
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
317 $ hg commit -m 'commit 1'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
318 nothing changed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
319 [1]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
320
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
321 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
322
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
323 An I/O error during pretxnclose is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
324
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
325 $ hg init ioerror-pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
326 $ cd ioerror-pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
327 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
328 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
329 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
330 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
331 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
332
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
333 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
334 $ 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: 31770
diff changeset
335 warn during pretxncommit
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
336 warn during txnclose
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
337
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
338 $ hg commit -m 'commit 1'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
339 nothing changed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
340 [1]
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
341
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
342 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
343
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
344 An I/O error during txnclose is handled
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
345
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
346 $ hg init ioerror-txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
347 $ cd ioerror-txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
348 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
349 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
350 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
351 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
352 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
353
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
354 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
355 $ 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: 31770
diff changeset
356 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
357 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
358
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
359 $ hg commit -m 'commit 1'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
360 nothing changed
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
361 [1]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
362
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
363 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
364
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
365 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: 31770
diff changeset
366
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
367 $ hg init ioerror-msgabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
368 $ cd ioerror-msgabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
369
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
370 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
371 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
372 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
373 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
374 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
375
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
376 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
377 $ hg --config ui.ioerrors=msgabort --config hooks.pretxncommit=false commit -m 'error during abort message'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
378 warn during abort
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
379 rollback completed
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
380 abort: pretxncommit hook exited with status 1
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
381 [255]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
382
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
383 $ hg commit -m 'commit 1'
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
384 warn during pretxncommit
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
385 warn during pretxnclose
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
386 warn during txnclose
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
387
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
388 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
389
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
390 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: 31770
diff changeset
391
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
392 $ hg init ioerror-txnabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
393 $ cd ioerror-txnabort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
394
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
395 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
396 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
397 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
398 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
399 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
400
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
401 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
402 $ 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: 31770
diff changeset
403 transaction abort!
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
404 rollback completed
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
405 abort: pretxncommit hook exited with status 1
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
406 [255]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
407
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
408 $ hg commit -m 'commit 1'
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
409 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
410 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
411 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
412
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
413 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
414
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
415 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: 31770
diff changeset
416
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
417 $ hg init ioerror-msgrollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
418 $ cd ioerror-msgrollback
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
419
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
420 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
421 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
422 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
423 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
424 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
425
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
426 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
427
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
428 $ 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: 31770
diff changeset
429 transaction abort!
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
430 warn during abort
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
431 abort: pretxncommit hook exited with status 1
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
432 [255]
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
433
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
434 $ hg verify
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
435 checking changesets
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
436 checking manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
437 crosschecking files in changesets and manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
438 checking files
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
439 1 files, 1 changesets, 1 total revisions
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
440
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
441 $ cd ..
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
442
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
443 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: 31770
diff changeset
444 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: 31770
diff changeset
445 of a transaction.
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
446
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
447 $ hg init ioerror-multiple
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
448 $ cd ioerror-multiple
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
449 $ echo 0 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
450 $ hg -q commit -A -m initial
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
451 warn during pretxncommit
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
452 warn during pretxnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
453 warn during txnclose
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
454
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
455 $ echo 1 > foo
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
456
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
457 $ 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: 31770
diff changeset
458
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
459 $ hg verify
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
460 checking changesets
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
461 checking manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
462 crosschecking files in changesets and manifests
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
463 checking files
33755
cde4cfeb6e3e ui: restore behavior to ignore some I/O errors (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 33754
diff changeset
464 1 files, 2 changesets, 2 total revisions
33754
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
465
2debf1e3cfa4 tests: test behavior of IOError during transactions (issue5658)
Gregory Szorc <gregory.szorc@gmail.com>
parents: 31770
diff changeset
466 $ cd ..