Mercurial > evolve
comparison tests/test-topic-push.t @ 2110:f1ffd093ef30 mercurial-3.9
mercurial-3.9: merge with hg-4.0 branch
We merge with the code for the future evolve 6.0.0 code to check for
compatibility.
Only minor test output change (" -> ') have been noted.
author | Pierre-Yves David <pierre-yves.david@ens-lyon.org> |
---|---|
date | Tue, 14 Mar 2017 14:47:20 -0700 |
parents | db617700d318 |
children | 3e339f6717c7 |
comparison
equal
deleted
inserted
replaced
1816:bb665c99562a | 2110:f1ffd093ef30 |
---|---|
1 $ . "$TESTDIR/testlib/topic_setup.sh" | |
2 | |
3 $ cat << EOF >> $HGRCPATH | |
4 > [ui] | |
5 > logtemplate = {rev} {branch} {get(namespaces, "topics")} {phase} {desc|firstline}\n | |
6 > [ui] | |
7 > ssh =python "$RUNTESTDIR/dummyssh" | |
8 > EOF | |
9 | |
10 $ hg init main | |
11 $ hg init draft | |
12 $ cat << EOF >> draft/.hg/hgrc | |
13 > [phases] | |
14 > publish=False | |
15 > EOF | |
16 $ hg clone main client | |
17 updating to branch default | |
18 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
19 $ cat << EOF >> client/.hg/hgrc | |
20 > [paths] | |
21 > draft=../draft | |
22 > EOF | |
23 | |
24 | |
25 Testing core behavior to make sure we did not break anything | |
26 ============================================================ | |
27 | |
28 Pushing a first changeset | |
29 | |
30 $ cd client | |
31 $ echo aaa > aaa | |
32 $ hg add aaa | |
33 $ hg commit -m 'CA' | |
34 $ hg outgoing -G | |
35 comparing with $TESTTMP/main | |
36 searching for changes | |
37 @ 0 default draft CA | |
38 | |
39 $ hg push | |
40 pushing to $TESTTMP/main | |
41 searching for changes | |
42 adding changesets | |
43 adding manifests | |
44 adding file changes | |
45 added 1 changesets with 1 changes to 1 files | |
46 | |
47 Pushing two heads | |
48 | |
49 $ echo aaa > bbb | |
50 $ hg add bbb | |
51 $ hg commit -m 'CB' | |
52 $ echo aaa > ccc | |
53 $ hg up 'desc(CA)' | |
54 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
55 $ hg add ccc | |
56 $ hg commit -m 'CC' | |
57 created new head | |
58 $ hg outgoing -G | |
59 comparing with $TESTTMP/main | |
60 searching for changes | |
61 @ 2 default draft CC | |
62 | |
63 o 1 default draft CB | |
64 | |
65 $ hg push | |
66 pushing to $TESTTMP/main | |
67 searching for changes | |
68 abort: push creates new remote head 9fe81b7f425d! | |
69 (merge or see "hg help push" for details about pushing new heads) | |
70 [255] | |
71 $ hg outgoing -r 'desc(CB)' -G | |
72 comparing with $TESTTMP/main | |
73 searching for changes | |
74 o 1 default draft CB | |
75 | |
76 $ hg push -r 'desc(CB)' | |
77 pushing to $TESTTMP/main | |
78 searching for changes | |
79 adding changesets | |
80 adding manifests | |
81 adding file changes | |
82 added 1 changesets with 1 changes to 1 files | |
83 | |
84 Pushing a new branch | |
85 | |
86 $ hg branch mountain | |
87 marked working directory as branch mountain | |
88 (branches are permanent and global, did you want a bookmark?) | |
89 $ hg commit --amend | |
90 $ hg outgoing -G | |
91 comparing with $TESTTMP/main | |
92 searching for changes | |
93 @ 4 mountain draft CC | |
94 | |
95 $ hg push | |
96 pushing to $TESTTMP/main | |
97 searching for changes | |
98 abort: push creates new remote branches: mountain! | |
99 (use 'hg push --new-branch' to create new remote branches) | |
100 [255] | |
101 $ hg push --new-branch | |
102 pushing to $TESTTMP/main | |
103 searching for changes | |
104 adding changesets | |
105 adding manifests | |
106 adding file changes | |
107 added 1 changesets with 1 changes to 1 files (+1 heads) | |
108 2 new obsolescence markers | |
109 | |
110 Including on non-publishing | |
111 | |
112 $ hg push --new-branch draft | |
113 pushing to $TESTTMP/draft | |
114 searching for changes | |
115 adding changesets | |
116 adding manifests | |
117 adding file changes | |
118 added 3 changesets with 3 changes to 3 files (+1 heads) | |
119 2 new obsolescence markers | |
120 | |
121 Testing topic behavior | |
122 ====================== | |
123 | |
124 Local peer tests | |
125 ---------------- | |
126 | |
127 $ hg up -r 'desc(CA)' | |
128 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
129 $ hg topic babar | |
130 $ echo aaa > ddd | |
131 $ hg add ddd | |
132 $ hg commit -m 'CD' | |
133 $ hg log -G # keep track of phase because I saw some strange bug during developement | |
134 @ 5 default babar draft CD | |
135 | | |
136 | o 4 mountain public CC | |
137 |/ | |
138 | o 1 default public CB | |
139 |/ | |
140 o 0 default public CA | |
141 | |
142 | |
143 Pushing a new topic to a non publishing server should not be seen as a new head | |
144 | |
145 $ hg push draft | |
146 pushing to $TESTTMP/draft | |
147 searching for changes | |
148 adding changesets | |
149 adding manifests | |
150 adding file changes | |
151 added 1 changesets with 1 changes to 1 files (+1 heads) | |
152 $ hg log -G | |
153 @ 5 default babar draft CD | |
154 | | |
155 | o 4 mountain public CC | |
156 |/ | |
157 | o 1 default public CB | |
158 |/ | |
159 o 0 default public CA | |
160 | |
161 | |
162 Pushing a new topic to a publishing server should be seen as a new head | |
163 | |
164 $ hg push | |
165 pushing to $TESTTMP/main | |
166 searching for changes | |
167 abort: push creates new remote head 67f579af159d! | |
168 (merge or see "hg help push" for details about pushing new heads) | |
169 [255] | |
170 $ hg log -G | |
171 @ 5 default babar draft CD | |
172 | | |
173 | o 4 mountain public CC | |
174 |/ | |
175 | o 1 default public CB | |
176 |/ | |
177 o 0 default public CA | |
178 | |
179 | |
180 wireprotocol tests | |
181 ------------------ | |
182 | |
183 $ hg up -r 'desc(CA)' | |
184 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
185 $ hg topic celeste | |
186 $ echo aaa > eee | |
187 $ hg add eee | |
188 $ hg commit -m 'CE' | |
189 $ hg log -G # keep track of phase because I saw some strange bug during developement | |
190 @ 6 default celeste draft CE | |
191 | | |
192 | o 5 default babar draft CD | |
193 |/ | |
194 | o 4 mountain public CC | |
195 |/ | |
196 | o 1 default public CB | |
197 |/ | |
198 o 0 default public CA | |
199 | |
200 | |
201 Pushing a new topic to a non publishing server without topic -> new head | |
202 | |
203 $ cat << EOF >> ../draft/.hg/hgrc | |
204 > [extensions] | |
205 > topic=! | |
206 > EOF | |
207 $ hg push ssh://user@dummy/draft | |
208 pushing to ssh://user@dummy/draft | |
209 searching for changes | |
210 abort: push creates new remote head 84eaf32db6c3! | |
211 (merge or see "hg help push" for details about pushing new heads) | |
212 [255] | |
213 $ hg log -G | |
214 @ 6 default celeste draft CE | |
215 | | |
216 | o 5 default babar draft CD | |
217 |/ | |
218 | o 4 mountain public CC | |
219 |/ | |
220 | o 1 default public CB | |
221 |/ | |
222 o 0 default public CA | |
223 | |
224 | |
225 Pushing a new topic to a non publishing server should not be seen as a new head | |
226 | |
227 $ printf "topic=" >> ../draft/.hg/hgrc | |
228 $ hg config extensions.topic >> ../draft/.hg/hgrc | |
229 $ hg push ssh://user@dummy/draft | |
230 pushing to ssh://user@dummy/draft | |
231 searching for changes | |
232 remote: adding changesets | |
233 remote: adding manifests | |
234 remote: adding file changes | |
235 remote: added 1 changesets with 1 changes to 1 files (+1 heads) | |
236 $ hg log -G | |
237 @ 6 default celeste draft CE | |
238 | | |
239 | o 5 default babar draft CD | |
240 |/ | |
241 | o 4 mountain public CC | |
242 |/ | |
243 | o 1 default public CB | |
244 |/ | |
245 o 0 default public CA | |
246 | |
247 | |
248 Pushing a new topic to a publishing server should be seen as a new head | |
249 | |
250 $ hg push ssh://user@dummy/main | |
251 pushing to ssh://user@dummy/main | |
252 searching for changes | |
253 abort: push creates new remote head 67f579af159d! | |
254 (merge or see "hg help push" for details about pushing new heads) | |
255 [255] | |
256 $ hg log -G | |
257 @ 6 default celeste draft CE | |
258 | | |
259 | o 5 default babar draft CD | |
260 |/ | |
261 | o 4 mountain public CC | |
262 |/ | |
263 | o 1 default public CB | |
264 |/ | |
265 o 0 default public CA | |
266 | |
267 | |
268 Check that we reject multiple head on the same topic | |
269 ---------------------------------------------------- | |
270 | |
271 $ hg up 'desc(CB)' | |
272 1 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
273 $ hg topic babar | |
274 $ echo aaa > fff | |
275 $ hg add fff | |
276 $ hg commit -m 'CF' | |
277 $ hg log -G | |
278 @ 7 default babar draft CF | |
279 | | |
280 | o 6 default celeste draft CE | |
281 | | | |
282 | | o 5 default babar draft CD | |
283 | |/ | |
284 | | o 4 mountain public CC | |
285 | |/ | |
286 o | 1 default public CB | |
287 |/ | |
288 o 0 default public CA | |
289 | |
290 | |
291 $ hg push draft | |
292 pushing to $TESTTMP/draft | |
293 searching for changes | |
294 abort: push creates new remote head f0bc62a661be on branch 'default:babar'! | |
295 (merge or see "hg help push" for details about pushing new heads) | |
296 [255] | |
297 | |
298 Multiple head on a branch merged in a topic changesets | |
299 ------------------------------------------------------------------------ | |
300 | |
301 | |
302 $ hg up 'desc(CA)' | |
303 0 files updated, 0 files merged, 2 files removed, 0 files unresolved | |
304 $ echo aaa > ggg | |
305 $ hg add ggg | |
306 $ hg commit -m 'CG' | |
307 created new head | |
308 $ hg up 'desc(CF)' | |
309 switching to topic babar | |
310 2 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
311 $ hg merge 'desc(CG)' | |
312 1 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
313 (branch merge, don't forget to commit) | |
314 $ hg commit -m 'CM' | |
315 $ hg log -G | |
316 @ 9 default babar draft CM | |
317 |\ | |
318 | o 8 default draft CG | |
319 | | | |
320 o | 7 default babar draft CF | |
321 | | | |
322 | | o 6 default celeste draft CE | |
323 | |/ | |
324 | | o 5 default babar draft CD | |
325 | |/ | |
326 | | o 4 mountain public CC | |
327 | |/ | |
328 o | 1 default public CB | |
329 |/ | |
330 o 0 default public CA | |
331 | |
332 | |
333 Reject when pushing to draft | |
334 | |
335 $ hg push draft -r . | |
336 pushing to $TESTTMP/draft | |
337 searching for changes | |
338 abort: push creates new remote head 4937c4cad39e! | |
339 (merge or see "hg help push" for details about pushing new heads) | |
340 [255] | |
341 | |
342 | |
343 Reject when pushing to publishing | |
344 | |
345 $ hg push -r . | |
346 pushing to $TESTTMP/main | |
347 searching for changes | |
348 adding changesets | |
349 adding manifests | |
350 adding file changes | |
351 added 3 changesets with 2 changes to 2 files | |
352 | |
353 $ cd .. | |
354 | |
355 Test phase move | |
356 ================================== | |
357 | |
358 setup, two repo knowns about two small topic branch | |
359 | |
360 $ hg init repoA | |
361 $ hg clone repoA repoB | |
362 updating to branch default | |
363 0 files updated, 0 files merged, 0 files removed, 0 files unresolved | |
364 $ cat << EOF >> repoA/.hg/hgrc | |
365 > [phases] | |
366 > publish=False | |
367 > EOF | |
368 $ cat << EOF >> repoB/.hg/hgrc | |
369 > [phases] | |
370 > publish=False | |
371 > EOF | |
372 $ cd repoA | |
373 $ echo aaa > base | |
374 $ hg add base | |
375 $ hg commit -m 'CBASE' | |
376 $ echo aaa > aaa | |
377 $ hg add aaa | |
378 $ hg topic topicA | |
379 $ hg commit -m 'CA' | |
380 $ hg up 'desc(CBASE)' | |
381 0 files updated, 0 files merged, 1 files removed, 0 files unresolved | |
382 $ echo aaa > bbb | |
383 $ hg add bbb | |
384 $ hg topic topicB | |
385 $ hg commit -m 'CB' | |
386 $ cd .. | |
387 $ hg push -R repoA repoB | |
388 pushing to repoB | |
389 searching for changes | |
390 adding changesets | |
391 adding manifests | |
392 adding file changes | |
393 added 3 changesets with 3 changes to 3 files (+1 heads) | |
394 $ hg log -G -R repoA | |
395 @ 2 default topicB draft CB | |
396 | | |
397 | o 1 default topicA draft CA | |
398 |/ | |
399 o 0 default draft CBASE | |
400 | |
401 | |
402 We turn different topic to public on each side, | |
403 | |
404 $ hg -R repoA phase --public topicA | |
405 $ hg -R repoB phase --public topicB | |
406 | |
407 Pushing should complain because it create to heads on default | |
408 | |
409 $ hg push -R repoA repoB | |
410 pushing to repoB | |
411 searching for changes | |
412 no changes found | |
413 abort: push create a new head on branch "default" | |
414 [255] |