Mercurial > evolve
annotate tests/test-discovery-hidden-common.t @ 6224:17ffdea0edbb stable
evolve: look for split successors of the correct ancestor (issue6648)
Consider two changesets, 1 and 2. 1 is split into two new changesets and 2 is
pruned. If we stand on 2 and call hg evolve, _singlesuccessor() will traverse
ancestors of wdp in search of a changeset with successors to update to (it will
be 1, which was split). In case of a split, select_split_successor() gets
control. The issue is this function didn't traverse ancestors, and instead
tried to look up successors of the original changeset (i.e. 2 in our case,
which was pruned).
We can make select_split_successor() aware of _singlesuccessor() logic by using
the changeset that actually has successors without traversing ancestors again.
It's done by storing that changeset in MultipleSuccessorsError exception.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Thu, 21 Apr 2022 22:19:27 +0400 |
parents | a60a478ee2fa |
children | 35e769c9604f |
rev | line source |
---|---|
5199
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
1 test for discovery with some remote changesets hidden locally |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
2 ============================================================= |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
3 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
4 $ . $TESTDIR/testlib/common.sh |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
5 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
6 $ cat << EOF >> $HGRCPATH |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
7 > [phases] |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
8 > publish = false |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
9 > [extensions] |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
10 > evolve = |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
11 > [experimental] |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
12 > verbose-obsolescence-exchange = 1 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
13 > [ui] |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
14 > logtemplate = "{rev} {node|short} {desc} {tags}\n" |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
15 > ssh = "$PYTHON" "$RUNTESTDIR/dummyssh" |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
16 > EOF |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
17 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
18 $ hg init server |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
19 $ hg clone ssh://user@dummy/server client |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
20 no changes found |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
21 updating to branch default |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
22 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
23 $ cd server |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
24 $ mkcommit root |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
25 $ mkcommit A0 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
26 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
27 second pull: |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
28 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
29 $ hg -R ../client pull |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
30 pulling from ssh://user@dummy/server |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
31 requesting all changes |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
32 adding changesets |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
33 adding manifests |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
34 adding file changes |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
35 added 2 changesets with 2 changes to 2 files |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
36 new changesets 1e4be0697311:8aaa48160adc (2 drafts) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
37 (run 'hg update' to get a working copy) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
38 $ hg -R ../client log -G |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
39 o 1 8aaa48160adc A0 tip |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
40 | |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
41 o 0 1e4be0697311 root |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
42 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
43 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
44 more update |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
45 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
46 $ hg tag --local stay-visible |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
47 $ hg up 0 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
48 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
49 $ mkcommit A1 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
50 created new head |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
51 $ hg debugobsolete `getid 'desc(A0)'` `getid 'desc(A1)'` |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
52 1 new obsolescence markers |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
53 obsoleted 1 changesets |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
54 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
55 second pull: |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
56 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
57 $ hg -R ../client pull |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
58 pulling from ssh://user@dummy/server |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
59 searching for changes |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
60 OBSEXC: looking for common markers in 2 nodes |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
61 adding changesets |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
62 adding manifests |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
63 adding file changes |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
64 added 1 changesets with 1 changes to 1 files (+1 heads) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
65 1 new obsolescence markers |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
66 obsoleted 1 changesets |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
67 new changesets f6082bc4ffef (1 drafts) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
68 (run 'hg heads' to see heads) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
69 $ hg -R ../client log -G |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
70 o 2 f6082bc4ffef A1 tip |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
71 | |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
72 o 0 1e4be0697311 root |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
73 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
74 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
75 more update: |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
76 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
77 $ hg up 0 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
78 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
79 $ mkcommit A2 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
80 created new head |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
81 $ hg debugobsolete `getid 'desc(A1)'` `getid 'desc(A2)'` |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
82 1 new obsolescence markers |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
83 obsoleted 1 changesets |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
84 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
85 third pull: |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
86 |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
87 $ hg -R ../client pull |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
88 pulling from ssh://user@dummy/server |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
89 searching for changes |
5200
a60a478ee2fa
obsdiscovery: avoid considering locally hidden changeset
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
5199
diff
changeset
|
90 OBSEXC: looking for common markers in 1 nodes |
5199
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
91 adding changesets |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
92 adding manifests |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
93 adding file changes |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
94 added 1 changesets with 1 changes to 1 files (+1 heads) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
95 1 new obsolescence markers |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
96 obsoleted 1 changesets |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
97 new changesets c1f8d089020f (1 drafts) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
98 (run 'hg heads' to see heads) |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
99 $ hg -R ../client log -G |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
100 o 3 c1f8d089020f A2 tip |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
101 | |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
102 o 0 1e4be0697311 root |
3302e4e742bc
obsdiscovery: add a test where some common node are hidden
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
diff
changeset
|
103 |