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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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