Mercurial > hg
annotate tests/test-empty-group.t @ 23225:bdf7b1ea1dae stable
changegroup: don't store unused value on fnodes (issue4443)
The contents of fnodes are only accessed once per key. It is wasteful to
cache the value since nobody will use it.
Before this patch, the caching of unused data in fnodes was effectively
causing a memory leak during the file streaming part of bundle creation.
On mozilla-central (which has ~190,000 entries in fnodes), this patch
has a significant impact on RSS at the end of generate():
before: 516,124 KB
after: 364,356 KB
delta: -151,768 KB
The origin of this code can be traced back to 627cd7842e5d and has been
with us since the 2.7 release.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 06 Nov 2014 22:33:48 -0800 |
parents | 301725c3df9a |
children | eb586ed5d8ce |
rev | line source |
---|---|
4659
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
1 # A B |
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
2 # |
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
3 # 3 4 3 |
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
4 # |\/| |\ |
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
5 # |/\| | \ |
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
6 # 1 2 1 2 |
7a7d4937272b
Kill trailing spaces
Thomas Arendsen Hein <thomas@intevation.de>
parents:
3853
diff
changeset
|
7 # \ / \ / |
2339
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
8 # 0 0 |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
9 # |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
10 # if the result of the merge of 1 and 2 |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
11 # is the same in 3 and 4, no new manifest |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
12 # will be created and the manifest group |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
13 # will be empty during the pull |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
14 # |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
15 # (plus we test a failure where outgoing |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
16 # wrongly reported the number of csets) |
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
17 |
12189
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
18 $ hg init a |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
19 $ cd a |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
20 $ touch init |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
21 $ hg ci -A -m 0 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
22 adding init |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
23 $ touch x y |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
24 $ hg ci -A -m 1 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
25 adding x |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
26 adding y |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
27 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
28 $ hg update 0 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
29 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
30 $ touch x y |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
31 $ hg ci -A -m 2 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
32 adding x |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
33 adding y |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
34 created new head |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
35 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
36 $ hg merge 1 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
37 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
38 (branch merge, don't forget to commit) |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
39 $ hg ci -A -m m1 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
40 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
41 $ hg update -C 1 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
42 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
43 $ hg merge 2 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
44 0 files updated, 0 files merged, 0 files removed, 0 files unresolved |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
45 (branch merge, don't forget to commit) |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
46 $ hg ci -A -m m2 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
47 created new head |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
48 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
49 $ cd .. |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
50 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
51 $ hg clone -r 3 a b |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
52 adding changesets |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
53 adding manifests |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
54 adding file changes |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
55 added 4 changesets with 3 changes to 3 files |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
56 updating to branch default |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
57 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
58 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
59 $ hg clone -r 4 a c |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
60 adding changesets |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
61 adding manifests |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
62 adding file changes |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
63 added 4 changesets with 3 changes to 3 files |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
64 updating to branch default |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
65 3 files updated, 0 files merged, 0 files removed, 0 files unresolved |
2339
11422943cf72
document and fix findincoming
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents:
diff
changeset
|
66 |
12189
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
67 $ hg -R a outgoing b |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
68 comparing with b |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
69 searching for changes |
14162
301725c3df9a
localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
12847
diff
changeset
|
70 changeset: 4:1ec3c74fc0e0 |
12189
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
71 tag: tip |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
72 parent: 1:79f9e10cd04e |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
73 parent: 2:8e1bb01c1a24 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
74 user: test |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
75 date: Thu Jan 01 00:00:00 1970 +0000 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
76 summary: m2 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
77 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
78 $ hg -R a outgoing c |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
79 comparing with c |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
80 searching for changes |
14162
301725c3df9a
localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
12847
diff
changeset
|
81 changeset: 3:d15a0c284984 |
12189
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
82 parent: 2:8e1bb01c1a24 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
83 parent: 1:79f9e10cd04e |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
84 user: test |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
85 date: Thu Jan 01 00:00:00 1970 +0000 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
86 summary: m1 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
87 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
88 $ hg -R b outgoing c |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
89 comparing with c |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
90 searching for changes |
14162
301725c3df9a
localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
12847
diff
changeset
|
91 changeset: 3:d15a0c284984 |
12189
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
92 tag: tip |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
93 parent: 2:8e1bb01c1a24 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
94 parent: 1:79f9e10cd04e |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
95 user: test |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
96 date: Thu Jan 01 00:00:00 1970 +0000 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
97 summary: m1 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
98 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
99 $ hg -R c outgoing b |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
100 comparing with b |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
101 searching for changes |
14162
301725c3df9a
localrepo: reuse parent manifest in commitctx if no files have changed
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
12847
diff
changeset
|
102 changeset: 3:1ec3c74fc0e0 |
12189
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
103 tag: tip |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
104 parent: 1:79f9e10cd04e |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
105 parent: 2:8e1bb01c1a24 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
106 user: test |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
107 date: Thu Jan 01 00:00:00 1970 +0000 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
108 summary: m2 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
109 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
110 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
111 $ hg -R b pull a |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
112 pulling from a |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
113 searching for changes |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
114 adding changesets |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
115 adding manifests |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
116 adding file changes |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
117 added 1 changesets with 0 changes to 0 files (+1 heads) |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
118 (run 'hg heads' to see heads, 'hg merge' to merge) |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
119 |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
120 $ hg -R c pull a |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
121 pulling from a |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
122 searching for changes |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
123 adding changesets |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
124 adding manifests |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
125 adding file changes |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
126 added 1 changesets with 0 changes to 0 files (+1 heads) |
fb0c6373ec36
tests: unify test-empty-group
Adrian Buehlmann <adrian@cadifra.com>
parents:
12156
diff
changeset
|
127 (run 'hg heads' to see heads, 'hg merge' to merge) |