annotate tests/test-exchange-obsmarkers-case-B5.t @ 47010:76ae43d5b1db stable

repoview: fix memory leak of filtered repo classes The leak occurs in long-running server processes with extensions, and is measured at 110kB per request. Before this change, the contents of the `_filteredrepotypes` cache are not properly garbage collected, despite it begin a `WeakKeyDictionary`. Extensions have a tendency to generate a new repository class for each `localrepo` instantiation. Server processes based on `hgwebdir_mod` will instantiate a new `localrepo` for each HTTP request that involves a repository. As a result, with a testing process that repeatedly opens a repository with several extensions activated (`topic` notably among them), we see a steady increase in resident memory of 110kB per repository instantiation before this change. This is also true, if we call `gc.collect()` at each instantiation, like `hgwebdir_mod` does, or not. The cause of the leak is that the *values* aren't weak references. This change uses `weakref.ref` for the values, and this makes in our measurements the resident size increase drop to 5kB per repository instantiation, with no explicit call of `gc.collect()` at all. There is currently no reason to believe that this remaining leak of 5kB is related to or even due to Mercurial core. We've also seen evidence that `ui.ui` instances weren't properly garbage collected before the change (with the change, they are). This could explain why the figures are relatively high. In theory, the collection of weak references could lead to much more misses in the cache, so we measured the impact on the original case that was motivation for introducing that cache in 7e89bd0cfb86 (see also issue5043): `hg convert` of the mozilla-central repository. The bad news here is that there is a major memory leak there, both with and without the present changeset. There were no more cache misses, and we could see no more memory leak with this change: the resident size after importing roughly 100000 changesets was at 12.4GB before, and 12.5GB after. The small increase is mentioned for completeness only, and we believe that it should be ignored, at least as long as the main leak isn't fixed. At less than 1% of the main leak, even finding out whether it is merely noise would be wasteful. Original context where this was spotted and first mitigated: https://foss.heptapod.net/heptapod/heptapod/-/issues/466 The leak reduction was also obtained in Heptapod inner HTTP server, which amounts to the same as `hgwebdir_mod` for these questions. The measurements done with Python 3.9, similar figures seen with 3.8. More work on our side would be needed to give measurements with 2.7, because of testing server process does not support it.
author Georges Racinet <georges.racinet@octobus.net>
date Fri, 23 Apr 2021 18:30:53 +0200
parents 34a46d48d24e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
31917
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
1 ============================================
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
2 Testing obsolescence markers push: Cases B.5
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
3 ============================================
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
4
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
5 Mercurial pushes obsolescences markers relevant to the "pushed-set", the set of
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
6 all changesets that requested to be "in sync" after the push (even if they are
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
7 already on both side).
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
8
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
9 This test belongs to a series of tests checking such set is properly computed
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
10 and applied. This does not tests "obsmarkers" discovery capabilities.
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
11
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
12 Category B: pruning case
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
13 TestCase 5: Push of a children of changeset which successors is pruned
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
14
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
15 B.5 Push of a children of changeset which successors is pruned
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
16 ==============================================================
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
17
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
18 .. This case Mirror A.4, with pruned changeset successors.
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
19 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
20 .. {{{
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
21 .. C ◔
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
22 .. |
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
23 .. B⇠ø⇠⊗ B'
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
24 .. | |
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
25 .. A ø⇠○ A'
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
26 .. |/
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
27 .. ●
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
28 .. }}}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
29 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
30 .. Marker exist from:
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
31 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
32 .. * `A ø⇠○ A'`
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
33 .. * `B ø⇠○ B'`
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
34 .. * chain from B
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
35 .. * `B' is pruned`
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
36 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
37 .. Command run:
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
38 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
39 .. * hg push -r C
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
40 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
41 .. Expected exchange:
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
42 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
43 .. * chain from B
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
44 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
45 .. Expected exclude:
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
46 ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
47 .. * `A ø⇠○ A'`
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
48 .. * `B ø⇠○ B'`
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
49 .. * `B' prune`
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
50
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
51 Setup
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
52 -----
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
53
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
54 $ . $TESTDIR/testlib/exchange-obsmarker-util.sh
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
55
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
56 initial
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
57
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
58 $ setuprepos B.5
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
59 creating test repo for test case B.5
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
60 - pulldest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
61 - main
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
62 - pushdest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
63 cd into `main` and proceed with env setup
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
64 $ cd main
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
65 $ mkcommit A0
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
66 $ mkcommit B0
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
67 $ mkcommit C
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
68 $ hg up --quiet 0
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
69 $ mkcommit A1
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
70 created new head
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
71 $ mkcommit B1
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
72 $ hg debugobsolete --hidden `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
73 1 new obsolescence markers
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 31917
diff changeset
74 obsoleted 1 changesets
35709
1a09dad8b85a evolution: report new unstable changesets
Martin von Zweigbergk <martinvonz@google.com>
parents: 35508
diff changeset
75 2 new orphan changesets
31917
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
76 $ hg debugobsolete --hidden aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa `getid 'desc(B0)'`
42893
34a46d48d24e debugobsolete: also issue the "new obsmarkers" messsage
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 39480
diff changeset
77 1 new obsolescence markers
31917
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
78 $ hg debugobsolete --hidden `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
79 1 new obsolescence markers
33542
b11e8c67fb0f debugobsolete: also report the number of obsoleted changesets
Boris Feld <boris.feld@octobus.net>
parents: 31917
diff changeset
80 obsoleted 1 changesets
31917
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
81 $ hg prune -qd '0 0' 'desc(B1)'
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
82 $ hg log -G --hidden
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
83 x 069b05c3876d (draft): B1
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
84 |
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
85 @ e5ea8f9c7314 (draft): A1
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
86 |
35508
9b3f95d9783d graphlog: add another graph node type, unstable, using character "*" (BC)
Anton Shestakov <av6@dwimlabs.net>
parents: 34661
diff changeset
87 | * 1d0f3cd25300 (draft): C
31917
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
88 | |
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
89 | x 6e72f0a95b5e (draft): B0
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
90 | |
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
91 | x 28b51eb45704 (draft): A0
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
92 |/
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
93 o a9bdc8b26820 (public): O
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
94
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
95 $ inspect_obsmarkers
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
96 obsstore content
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
97 ================
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
98 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
99 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
100 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
101 069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
102 $ cd ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
103 $ cd ..
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
104
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
105 Actual Test (explicit push version)
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
106 -----------------------------------
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
107
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
108 $ dotest B.5 C -f
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
109 ## Running testcase B.5
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
110 # testing echange of "C" (1d0f3cd25300)
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
111 ## initial state
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
112 # obstore: main
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
113 069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
114 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
115 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
116 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
117 # obstore: pushdest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
118 # obstore: pulldest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
119 ## pushing "C" from main to pushdest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
120 pushing to pushdest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
121 searching for changes
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
122 remote: adding changesets
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
123 remote: adding manifests
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
124 remote: adding file changes
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
125 remote: added 3 changesets with 3 changes to 3 files
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
126 remote: 1 new obsolescence markers
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
127 ## post push state
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
128 # obstore: main
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
129 069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
130 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
131 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
132 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
133 # obstore: pushdest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
134 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
135 # obstore: pulldest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
136 ## pulling "1d0f3cd25300" from main into pulldest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
137 pulling from main
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
138 searching for changes
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
139 adding changesets
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
140 adding manifests
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
141 adding file changes
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
142 added 3 changesets with 3 changes to 3 files
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
143 1 new obsolescence markers
39480
89630d0b3e23 phase: report number of non-public changeset alongside the new range
Boris Feld <boris.feld@octobus.net>
parents: 35709
diff changeset
144 new changesets 28b51eb45704:1d0f3cd25300 (3 drafts)
31917
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
145 (run 'hg update' to get a working copy)
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
146 ## post pull state
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
147 # obstore: main
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
148 069b05c3876d56f62895e853a501ea58ea85f68d 0 {e5ea8f9c73143125d36658e90ef70c6d2027a5b7} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
149 28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
150 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 069b05c3876d56f62895e853a501ea58ea85f68d 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
151 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
152 # obstore: pushdest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
153 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
154 # obstore: pulldest
e4d1a7e07761 obsolescence: add test case B-5 for obsolescence markers exchange
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents:
diff changeset
155 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 6e72f0a95b5e01a7504743aa941f69cb1fbef8b0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}