Mercurial > hg
annotate tests/test-strip-branch-cache.t @ 51550:463e63aa547c
stream-clone: disable gc for `_entries_walk` duration
The number of small container created turn Python in a gc-frenzy that seriously
impact performance.
This significantly boost performance. The following number comes from a large
private repository using perf::stream-locked-section:
base-line: 35.04 seconds
prev-change: 24.51 seconds (-30%)
this-change: 20.88 seconds (-40% from baseline; -15% from previous changes)
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 26 Mar 2024 13:32:46 +0000 |
parents | 82c1a388e86a |
children |
rev | line source |
---|---|
51492
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
1 This test cover a bug that no longer exist. |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
2 |
49071
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
3 Define helpers. |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
4 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
5 $ hg_log () { hg log -G -T "{rev}:{node|short}"; } |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
6 $ commit () { echo "foo - ${2:-$1}" > $1; hg commit -Aqm "Edited $1"; } |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
7 $ strip() { hg --config extensions.strip= strip -q -r "$1" ; } |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
8 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
9 Setup hg repo. |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
10 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
11 $ hg init repo |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
12 $ cd repo |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
13 $ touch x; hg add x; hg commit -m "initial" |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
14 $ hg clone -q . ../clone |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
15 $ commit a |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
16 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
17 $ cd ../clone |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
18 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
19 $ commit b |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
20 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
21 $ hg pull -q ../repo |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
22 |
51492
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
23 $ ls -1 .hg/cache/branch?* |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
24 .hg/cache/branch2-base |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
25 .hg/cache/branch2-served |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
26 $ cat .hg/cache/branch?-served |
49071
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
27 222ae9789a75703f9836e44de7db179cbfd420ee 2 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
28 a3498d6e39376d2456425dd8c692367bdbf00fa2 o default |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
29 222ae9789a75703f9836e44de7db179cbfd420ee o default |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
30 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
31 $ hg_log |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
32 o 2:222ae9789a75 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
33 | |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
34 | @ 1:a3498d6e3937 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
35 |/ |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
36 o 0:7ab0a3bd758a |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
37 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
38 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
39 $ strip '1:' |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
40 |
51492
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
41 After the strip the "served" cache is now identical to the "base" one, and the |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
42 older one have been actively deleted. |
49071
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
43 |
51492
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
44 $ ls -1 .hg/cache/branch?* |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
45 .hg/cache/branch2-base |
51493
82c1a388e86a
branchcache: explicitly track inheritence "state"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51492
diff
changeset
|
46 $ cat .hg/cache/branch?-base |
82c1a388e86a
branchcache: explicitly track inheritence "state"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51492
diff
changeset
|
47 7ab0a3bd758a58b9f79557ce708533e627776cce 0 |
82c1a388e86a
branchcache: explicitly track inheritence "state"
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
51492
diff
changeset
|
48 7ab0a3bd758a58b9f79557ce708533e627776cce o default |
49071
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
49 |
51492
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
50 We do a new commit and we get a new valid branchmap for the served version |
49071
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
51 |
51492
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
52 $ commit c |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
53 $ ls -1 .hg/cache/branch?* |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
54 .hg/cache/branch2-base |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
55 .hg/cache/branch2-served |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
56 $ cat .hg/cache/branch?-served |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
57 a1602b357cfca067600406eb19060c7128804d72 1 |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
58 a1602b357cfca067600406eb19060c7128804d72 o default |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
59 |
49071
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
60 |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
61 On pull we end up with the same tip, and so wrongly reuse the invalid cache and crash. |
9caf23927d04
branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff
changeset
|
62 |
51492
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
63 $ hg pull ../repo --quiet |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
64 $ hg heads -T '{rev} {node} {branch}\n' |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
65 2 222ae9789a75703f9836e44de7db179cbfd420ee default |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
66 1 a1602b357cfca067600406eb19060c7128804d72 default |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
67 $ ls -1 .hg/cache/branch?* |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
68 .hg/cache/branch2-base |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
69 .hg/cache/branch2-served |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
70 $ cat .hg/cache/branch?-served |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
71 222ae9789a75703f9836e44de7db179cbfd420ee 2 |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
72 a1602b357cfca067600406eb19060c7128804d72 o default |
2e8a88e5809f
branchcache: stop writing more branchcache file on disk than needed
Pierre-Yves David <pierre-yves.david@octobus.net>
parents:
49071
diff
changeset
|
73 222ae9789a75703f9836e44de7db179cbfd420ee o default |