annotate tests/test-push-checkheads-unpushed-D7.t @ 32402:c8e10565a113

error: add a new exception named WdirUnsupported This series intents to support wdir() predicate with different operators like ~, ^. Currently the storage class don't support wdir(). This exception is introduced so that it can be raised from places where wdir() is passed and is not supported and we can catch this where we want to support the predicate. Also throwing an error at low level and catching at some higher level is better than using if-else especially for perf.
author Pulkit Goyal <7895pulkit@gmail.com>
date Fri, 19 May 2017 19:10:37 +0530
parents 090fff9b6d65
children 53b3a1968aa6
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32018
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 ====================================
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2 Testing head checking code: Case D-7
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 ====================================
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
4
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
5 Mercurial checks for the introduction of new heads on push. Evolution comes
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
6 into play to detect if existing branches on the server are being replaced by
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7 some of the new one we push.
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
9 This case is part of a series of tests checking this behavior.
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
11 Category D: remote head is "obs-affected" locally, but result is not part of the push
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 TestCase 7: single changesets, superseeded multiple time then pruned (on a new changeset unpushed) changeset
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14 This is a partial push variation of B6
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 .. old-state:
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17 ..
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 .. * 1 changeset branch
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19 ..
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 .. new-state:
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 ..
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 .. * old branch is rewritten onto another one,
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 .. * The rewriting it again rewritten on the root
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24 .. * the new version is then pruned.
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 ..
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 .. expected-result:
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 ..
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 .. * push allowed
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 ..
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30 .. graph-summary:
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 ..
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 .. A'
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33 .. A ø⇠ø⇠⊗ A''
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34 .. | | |
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35 .. C ◔ | ◔ | B
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36 .. \|/ /
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37 .. | /
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38 .. |/
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39 .. |
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40 .. ●
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 $ . $TESTDIR/testlib/push-checkheads-util.sh
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
44 Test setup
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
45 ----------
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
46
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
47 $ mkdir D7
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
48 $ cd D7
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
49 $ setuprepos
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
50 creating basic server and client repo
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
51 updating to branch default
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
52 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
53 $ cd client
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
54 $ hg up 0
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
55 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
56 $ mkcommit B0
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
57 created new head
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
58 $ mkcommit A1
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
59 $ hg up '0'
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
60 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
61 $ mkcommit A2
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
62 created new head
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
63 $ hg up '0'
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
64 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
65 $ mkcommit C0
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
66 created new head
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
67 $ hg debugobsolete `getid "desc(A0)"` `getid "desc(A1)"`
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
68 $ hg debugobsolete `getid "desc(A1)"` `getid "desc(A2)"`
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
69 $ hg debugobsolete --record-parents `getid "desc(A2)"`
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
70 $ hg log -G --hidden
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
71 @ 0f88766e02d6 (draft): C0
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
72 |
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
73 | x c1f8d089020f (draft): A2
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
74 |/
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
75 | x ba93660aff8d (draft): A1
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
76 | |
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
77 | o 74ff5441d343 (draft): B0
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
78 |/
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
79 | x 8aaa48160adc (draft): A0
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
80 |/
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
81 o 1e4be0697311 (public): root
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
82
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
83
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
84 Actual testing
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
85 --------------
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
86
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
87 $ hg push --rev 'desc(C0)'
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
88 pushing to $TESTTMP/D7/server (glob)
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
89 searching for changes
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
90 adding changesets
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
91 adding manifests
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
92 adding file changes
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
93 added 1 changesets with 1 changes to 1 files (+1 heads)
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
94 3 new obsolescence markers
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
95
090fff9b6d65 obsolescence: add test for the "branch replacement" logic during push, case D7
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
96 $ cd ../..