annotate tests/test-push-checkheads-unpushed-D3.t @ 51316:178e50edb4f8

changelog: stop useless enforcing split at the end of transaction Changelogs are no longer created inline, and existing changelogs are automatically split. Since we now enforce splitting at the start of any write, we don't need to enforce splitting at the end of the transaction. This has the nice side effect of killing the only user of "side_write".
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 11 Jan 2024 16:35:52 +0100
parents 9261f6c1d39b
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 ====================================
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2 Testing head checking code: Case D-3
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 ====================================
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
4
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
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
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
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
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7 some of the new one we push.
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
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.
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
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
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 TestCase 3: multi-changeset branch, split on multiple new others, only one of them is pushed
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14 .. old-state:
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15 ..
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 .. * 2 changesets branch
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17 ..
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 .. new-state:
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19 ..
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 .. * 2 new branches, each superseding one changeset in the old one.
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 ..
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 .. expected-result:
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 ..
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24 .. * pushing only one of the resulting branch (either of them)
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 .. * push denied
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 ..
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 .. graph-summary:
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 ..
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 .. B'◔⇢ø B
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30 .. | |
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 .. A | ø⇠◔ A'
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 .. | |/
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33 .. \|
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34 .. ●
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36 $ . $TESTDIR/testlib/push-checkheads-util.sh
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38 Test setup
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39 ----------
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41 $ mkdir D3
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 $ cd D3
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43 $ setuprepos
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
44 creating basic server and client repo
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
45 updating to branch default
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
46 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
47 $ cd server
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
48 $ mkcommit B0
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
49 $ hg up 0
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
50 0 files updated, 0 files merged, 2 files removed, 0 files unresolved
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
51 $ cd ../client
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
52 $ hg pull
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
53 pulling from $TESTTMP/D3/server
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
54 searching for changes
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
55 adding changesets
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
56 adding manifests
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
57 adding file changes
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
58 added 1 changesets with 1 changes to 1 files
39480
89630d0b3e23 phase: report number of non-public changeset alongside the new range
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
59 new changesets d73caddc5533 (1 drafts)
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
60 (run 'hg update' to get a working copy)
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
61 $ hg up 0
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
62 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
63 $ mkcommit A1
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
64 created new head
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
65 $ hg up '0'
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
66 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
67 $ mkcommit B1
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
68 created new head
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
69 $ hg debugobsolete `getid "desc(A0)" ` `getid "desc(A1)"`
42893
34a46d48d24e debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 39480
diff changeset
70 1 new obsolescence markers
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 32016
diff changeset
71 obsoleted 1 changesets
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35393
diff changeset
72 1 new orphan changesets
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
73 $ hg debugobsolete `getid "desc(B0)" ` `getid "desc(B1)"`
42893
34a46d48d24e debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 39480
diff changeset
74 1 new obsolescence markers
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 32016
diff changeset
75 obsoleted 1 changesets
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
76 $ hg log -G --hidden
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
77 @ 25c56d33e4c4 (draft): B1
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
78 |
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
79 | o f6082bc4ffef (draft): A1
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
80 |/
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
81 | x d73caddc5533 (draft): B0
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
82 | |
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
83 | x 8aaa48160adc (draft): A0
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
84 |/
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
85 o 1e4be0697311 (public): root
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
86
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
87
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
88 Actual testing
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
89 --------------
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
90
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
91 $ hg push --rev 'desc(A1)'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
92 pushing to $TESTTMP/D3/server
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
93 searching for changes
45908
122f0b59f5f0 errors: remove trailing "!" in messages about creating new heads on push
Martin von Zweigbergk <martinvonz@google.com>
parents: 42893
diff changeset
94 abort: push creates new remote head f6082bc4ffef
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
95 (merge or see 'hg help push' for details about pushing new heads)
46119
9261f6c1d39b errors: raise StateError when push fails because it creates new heads
Martin von Zweigbergk <martinvonz@google.com>
parents: 45908
diff changeset
96 [20]
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
97 $ hg push --rev 'desc(B1)'
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
98 pushing to $TESTTMP/D3/server
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
99 searching for changes
45908
122f0b59f5f0 errors: remove trailing "!" in messages about creating new heads on push
Martin von Zweigbergk <martinvonz@google.com>
parents: 42893
diff changeset
100 abort: push creates new remote head 25c56d33e4c4
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
101 (merge or see 'hg help push' for details about pushing new heads)
46119
9261f6c1d39b errors: raise StateError when push fails because it creates new heads
Martin von Zweigbergk <martinvonz@google.com>
parents: 45908
diff changeset
102 [20]
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
103
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
104 Extra testing
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
105 -------------
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
106
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
107 In this case, even a bare push is creating more heads
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
108
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
109 $ hg push
35393
4441705b7111 tests: remove (glob) annotations that were only for '\' matches
Matt Harbison <matt_harbison@yahoo.com>
parents: 34661
diff changeset
110 pushing to $TESTTMP/D3/server
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
111 searching for changes
45908
122f0b59f5f0 errors: remove trailing "!" in messages about creating new heads on push
Martin von Zweigbergk <martinvonz@google.com>
parents: 42893
diff changeset
112 abort: push creates new remote head 25c56d33e4c4
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
113 (merge or see 'hg help push' for details about pushing new heads)
46119
9261f6c1d39b errors: raise StateError when push fails because it creates new heads
Martin von Zweigbergk <martinvonz@google.com>
parents: 45908
diff changeset
114 [20]
32016
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
115
43c91eb53806 obsolescence: add test for the "branch replacement" logic during push, case D3
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
116 $ cd ../..