Mercurial > evolve
comparison tests/test-exchange-A3.t @ 832:46e81a5d2d94
exchange: add test case for A.3
Allow arbitrary arguments to dotest. This allow to push --force when the push
creates more heads.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Mon, 03 Mar 2014 14:59:43 -0800 |
parents | |
children | 010c7e4aa820 |
comparison
equal
deleted
inserted
replaced
831:a6af6919888d | 832:46e81a5d2d94 |
---|---|
1 | |
2 Initial setup | |
3 | |
4 $ . $TESTDIR/_exc-util.sh | |
5 | |
6 === A.3 new branch created === | |
7 | |
8 .. {{{ | |
9 .. B' ○⇢ø B | |
10 .. | | | |
11 .. \Aø⇠◔ A' | |
12 .. \|/ | |
13 .. ● O | |
14 .. }}} | |
15 .. | |
16 .. Marker exist from: | |
17 .. | |
18 .. * `Aø⇠○ A'` | |
19 .. * `Bø⇠○ B'` | |
20 .. | |
21 .. Command run: | |
22 .. | |
23 .. * hg push -r A | |
24 .. | |
25 .. Expected exchange: | |
26 .. | |
27 .. * chain from A | |
28 .. | |
29 .. Expected Exclude: | |
30 .. | |
31 .. * chain from B | |
32 .. | |
33 .. Extra note: | |
34 .. | |
35 .. If A and B are remontly known, we should expect: | |
36 .. | |
37 .. * `hg push` will complain about the new head | |
38 .. * `hg push` should complain about unstable history creation | |
39 | |
40 initial | |
41 | |
42 $ setuprepos A.3.a | |
43 creating test repo for test case A.3.a | |
44 - pulldest | |
45 - main | |
46 - pushdest | |
47 cd into `main` and proceed with env setup | |
48 $ cd main | |
49 $ mkcommit A0 | |
50 $ mkcommit B0 | |
51 $ hg update -q 0 | |
52 $ mkcommit A1 | |
53 created new head | |
54 $ hg update -q 0 | |
55 $ mkcommit B1 | |
56 created new head | |
57 $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'` | |
58 $ hg debugobsolete `getid 'desc(B0)'` `getid 'desc(B1)'` | |
59 $ hg log -G --hidden | |
60 @ f6298a8ac3a4 (draft): B1 | |
61 | | |
62 | o e5ea8f9c7314 (draft): A1 | |
63 |/ | |
64 | x 6e72f0a95b5e (draft): B0 | |
65 | | | |
66 | x 28b51eb45704 (draft): A0 | |
67 |/ | |
68 o a9bdc8b26820 (public): O | |
69 | |
70 $ hg debugobsolete | |
71 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
72 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
73 $ cd .. | |
74 $ cd .. | |
75 | |
76 Actual Test for first version (changeset unknown remotly) | |
77 --------------------------------------------------------- | |
78 | |
79 $ dotest A.3.a A1 | |
80 ## Running testcase A.3.a | |
81 # testing echange of "A1" (e5ea8f9c7314) | |
82 ## initial state | |
83 # obstore: main | |
84 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
85 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
86 # obstore: pushdest | |
87 # obstore: pulldest | |
88 ## pushing "A1" from main to pushdest | |
89 pushing to pushdest | |
90 searching for changes | |
91 adding changesets | |
92 adding manifests | |
93 adding file changes | |
94 added 1 changesets with 1 changes to 1 files | |
95 OBSEXC: computing relevant nodes | |
96 OBSEXC: computing markers relevant to 2 nodes | |
97 OBSEXC: encoding 1 markers | |
98 OBSEXC: sending 1 pushkey payload (78 bytes) | |
99 OBSEXC: DONE | |
100 ## post push state | |
101 # obstore: main | |
102 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
103 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
104 # obstore: pushdest | |
105 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
106 # obstore: pulldest | |
107 ## pulling "e5ea8f9c7314" from main into pulldest | |
108 pulling from main | |
109 searching for changes | |
110 adding changesets | |
111 adding manifests | |
112 adding file changes | |
113 added 1 changesets with 1 changes to 1 files | |
114 OBSEXC: pull obsolescence markers | |
115 OBSEXC: merging obsolescence markers (62 bytes) | |
116 OBSEXC: 1 markers added | |
117 OBSEXC: DONE | |
118 (run 'hg update' to get a working copy) | |
119 ## post pull state | |
120 # obstore: main | |
121 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
122 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
123 # obstore: pushdest | |
124 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
125 # obstore: pulldest | |
126 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
127 | |
128 | |
129 other variant: changeset know remotly | |
130 ------------------------------------------- | |
131 | |
132 $ setuprepos A.3.b | |
133 creating test repo for test case A.3.b | |
134 - pulldest | |
135 - main | |
136 - pushdest | |
137 cd into `main` and proceed with env setup | |
138 $ cd main | |
139 $ mkcommit A0 | |
140 $ mkcommit B0 | |
141 $ hg push -q ../pushdest | |
142 $ hg push -q ../pulldest | |
143 $ hg update -q 0 | |
144 $ mkcommit A1 | |
145 created new head | |
146 $ hg update -q 0 | |
147 $ mkcommit B1 | |
148 created new head | |
149 $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'` | |
150 $ hg debugobsolete `getid 'desc(B0)'` `getid 'desc(B1)'` | |
151 $ hg log -G --hidden | |
152 @ f6298a8ac3a4 (draft): B1 | |
153 | | |
154 | o e5ea8f9c7314 (draft): A1 | |
155 |/ | |
156 | x 6e72f0a95b5e (draft): B0 | |
157 | | | |
158 | x 28b51eb45704 (draft): A0 | |
159 |/ | |
160 o a9bdc8b26820 (public): O | |
161 | |
162 $ hg debugobsolete | |
163 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
164 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
165 $ cd .. | |
166 $ cd .. | |
167 | |
168 Actual Test for first version (changeset unknown remotly) | |
169 --------------------------------------------------------- | |
170 | |
171 check it complains about multiple heads | |
172 | |
173 $ cd A.3.b | |
174 $ hg push -R main -r e5ea8f9c7314 pushdest | |
175 pushing to pushdest | |
176 searching for changes | |
177 abort: push creates new remote head e5ea8f9c7314! | |
178 (merge or see "hg help push" for details about pushing new heads) | |
179 [255] | |
180 $ cd .. | |
181 | |
182 test obsmarkers exchange. | |
183 | |
184 $ dotest A.3.b A1 -f | |
185 ## Running testcase A.3.b | |
186 # testing echange of "A1" (e5ea8f9c7314) | |
187 ## initial state | |
188 # obstore: main | |
189 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
190 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
191 # obstore: pushdest | |
192 # obstore: pulldest | |
193 ## pushing "A1" from main to pushdest | |
194 pushing to pushdest | |
195 searching for changes | |
196 adding changesets | |
197 adding manifests | |
198 adding file changes | |
199 added 1 changesets with 1 changes to 1 files (+1 heads) | |
200 OBSEXC: computing relevant nodes | |
201 OBSEXC: computing markers relevant to 2 nodes | |
202 OBSEXC: encoding 1 markers | |
203 OBSEXC: sending 1 pushkey payload (78 bytes) | |
204 OBSEXC: DONE | |
205 ## post push state | |
206 # obstore: main | |
207 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
208 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
209 # obstore: pushdest | |
210 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
211 # obstore: pulldest | |
212 ## pulling "e5ea8f9c7314" from main into pulldest | |
213 pulling from main | |
214 searching for changes | |
215 adding changesets | |
216 adding manifests | |
217 adding file changes | |
218 added 1 changesets with 1 changes to 2 files (+1 heads) | |
219 OBSEXC: pull obsolescence markers | |
220 OBSEXC: merging obsolescence markers (62 bytes) | |
221 OBSEXC: 1 markers added | |
222 OBSEXC: DONE | |
223 (run 'hg heads' to see heads, 'hg merge' to merge) | |
224 1 new unstable changesets | |
225 ## post pull state | |
226 # obstore: main | |
227 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
228 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 f6298a8ac3a4b78bbeae5f1d3dc5bc3c3812f0f3 0 {'date': '', 'user': 'test'} | |
229 # obstore: pushdest | |
230 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} | |
231 # obstore: pulldest | |
232 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 {'date': '', 'user': 'test'} |