annotate tests/test-debugbundle.t @ 51977:42a116f1cdc1

branchmap-v3: introduce a "stop_rev" argument to `headsrevs` The `headsrevs` method of the revlog already have a `revs` argument to compute the headrevs of a limited set of heads. However, it disable the use of the native compiled code to compute the heads, which slows down the branchmap v3 code a lot. The branchmap v3 usage is actually quite constrained as we will always only ignores a part at the top of the graph. So we could be significantly faster. We start by making small change to the python side to improve the situation and introduce the new API. More collaboration with the native code are coming later. This massively speedup operation and close most of the remaining gaps between branchmap-v3 and branchmap-v2. especially on repository with many revs like mozilla-try. A small overhead remains mostly because the `headrevs` logic currently has some inefficiently. We will look into them from there. ### benchmark.name = hg.command.unbundle # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = disabled # benchmark.variants.resource-usage = default # benchmark.variants.reuse-external-delta-parent = yes # benchmark.variants.revs = any-1-extra-rev # benchmark.variants.source = unbundle # benchmark.variants.validate = default # benchmark.variants.verbosity = quiet ## data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # bin-env-vars.hg.flavor = default branch-v2: 0.233711 ~~~~~ branch-v3 before: 0.368769 (+57.79%, +0.14) branch-v3 after: 0.239857 (+2.63%, +0.01) # bin-env-vars.hg.flavor = rust branch-v2: 0.235230 ~~~~~ branch-v3 before: 0.372460 (+58.34%, +0.14) branch-v3 after: 0.240972 (+2.44%, +0.01) ## data-env-vars.name = netbeans-2018-08-01-ds2-pnm # bin-env-vars.hg.flavor = rust branch-v2: 0.255586 ~~~~~ branch-v3 before: 0.318907 (+24.78%, +0.06) branch-v3 after: 0.268560 (+5.08%, +0.01) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog # bin-env-vars.hg.flavor = default branch-v2: 0.339010 ~~~~~ branch-v3 before: 0.349752 (+3.17%, +0.01) branch-v3 after: 0.349389 (+3.06%, +0.01) # bin-env-vars.hg.flavor = rust branch-v2: 0.346525 ~~~~~ branch-v3 before: 0.354300 (+2.24%, +0.01) branch-v3 after: 0.355661 (+2.64%, +0.01) ## data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm # bin-env-vars.hg.flavor = rust branch-v2: 0.380202 ~~~~~ branch-v3 before: 0.396293 (+4.23%, +0.02) branch-v3 after: 0.408851 (+7.54%, +0.03) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # bin-env-vars.hg.flavor = default branch-v2: 0.412165 ~~~~~ branch-v3 before: 0.424769 (+3.06%, +0.01) branch-v3 after: 0.427782 (+3.79%, +0.02) # bin-env-vars.hg.flavor = rust branch-v2: 0.412397 ~~~~~ branch-v3 before: 0.421796 (+2.28%, +0.01) branch-v3 after: 0.422354 (+2.41%, +0.01) ## data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # bin-env-vars.hg.flavor = rust branch-v2: 0.429501 ~~~~~ branch-v3 before: 0.443849 (+3.34%, +0.01) branch-v3 after: 0.443197 (+3.19%, +0.01) ## data-env-vars.name = mozilla-try-2024-03-26-zstd-sparse-revlog # bin-env-vars.hg.flavor = default branch-v2: 3.403171 ~~~~~ branch-v3 before: 6.234055 (+83.18%, +2.83) branch-v3 after: 3.819477 (+12.23%, +0.42) # bin-env-vars.hg.flavor = rust branch-v2: 3.454876 ~~~~~ branch-v3 before: 6.307813 (+82.58%, +2.85) branch-v3 after: 3.590284 (+3.92%, +0.14) ## data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm # bin-env-vars.hg.flavor = rust branch-v2: 3.465435 ~~~~~ branch-v3 before: 5.176076 (+49.36%, +1.71) branch-v3 after: 3.633278 (+4.84%, +0.17)
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Tue, 03 Sep 2024 11:11:17 +0200
parents 326b174c6a47
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
1
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
2 Create a test repository:
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
3
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
4 $ hg init repo
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
5 $ cd repo
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
6 $ touch a ; hg add a ; hg ci -ma
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
7 $ touch b ; hg add b ; hg ci -mb
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
8 $ touch c ; hg add c ; hg ci -mc
26864
fb1217cea400 test: enforce v1 in 'test-debugbundle.t'
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 23748
diff changeset
9 $ hg bundle --base 0 --rev tip bundle.hg -v --type v1
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
10 2 changesets found
23748
4ab66de46a96 bundle: when verbose, show what takes up the space in the generated bundle
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
11 uncompressed size of bundle content:
4ab66de46a96 bundle: when verbose, show what takes up the space in the generated bundle
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
12 332 (changelog)
4ab66de46a96 bundle: when verbose, show what takes up the space in the generated bundle
Mads Kiilerich <madski@unity3d.com>
parents: 16913
diff changeset
13 282 (manifests)
27711
7a678a12a5cf mdiff: don't emit a diff header for empty trivial deltas
Mike Hommey <mh@glandium.org>
parents: 26864
diff changeset
14 93 b
7a678a12a5cf mdiff: don't emit a diff header for empty trivial deltas
Mike Hommey <mh@glandium.org>
parents: 26864
diff changeset
15 93 c
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
16 $ hg bundle --base 0 --rev tip bundle2.hg -v --type none-v2
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
17 2 changesets found
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
18 uncompressed size of bundle content:
30211
6b0741d6d234 changegroup: skip delta when the underlying revlog do not use them
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29593
diff changeset
19 344 (changelog)
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
20 322 (manifests)
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
21 113 b
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
22 113 c
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
23
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
24 Terse output:
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
25
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
26 $ hg debugbundle bundle.hg
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
27 0e067c57feba1a5694ca4844f05588bb1bf82342
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
28 991a3460af53952d10ec8a295d3d2cc2e5fa9690
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
29
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
30 Terse output:
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
31
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
32 $ hg debugbundle bundle2.hg
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
33 Stream params: {}
37841
d618558e4e8b debugbundle: also display if a part is mandatory or advisory
Boris Feld <boris.feld@octobus.net>
parents: 36965
diff changeset
34 changegroup -- {nbchanges: 2, version: 02} (mandatory: True)
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
35 0e067c57feba1a5694ca4844f05588bb1bf82342
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
36 991a3460af53952d10ec8a295d3d2cc2e5fa9690
37842
326b174c6a47 bundle2: mark the bundle2 part as advisory (issue5872)
Boris Feld <boris.feld@octobus.net>
parents: 37841
diff changeset
37 cache:rev-branch-cache -- {} (mandatory: False)
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
38
36951
c92d1d3c58ee debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents: 34025
diff changeset
39 Quiet output
c92d1d3c58ee debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents: 34025
diff changeset
40
c92d1d3c58ee debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents: 34025
diff changeset
41 $ hg debugbundle --quiet bundle2.hg
c92d1d3c58ee debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents: 34025
diff changeset
42 Stream params: {}
37841
d618558e4e8b debugbundle: also display if a part is mandatory or advisory
Boris Feld <boris.feld@octobus.net>
parents: 36965
diff changeset
43 changegroup -- {nbchanges: 2, version: 02} (mandatory: True)
37842
326b174c6a47 bundle2: mark the bundle2 part as advisory (issue5872)
Boris Feld <boris.feld@octobus.net>
parents: 37841
diff changeset
44 cache:rev-branch-cache -- {} (mandatory: False)
36951
c92d1d3c58ee debugbundle: do not display detailed part data in --quiet mode
Boris Feld <boris.feld@octobus.net>
parents: 34025
diff changeset
45
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
46 Verbose output:
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
47
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
48 $ hg debugbundle --all bundle.hg
14141
bd1cbfe5db5c bundler: make parsechunk return the base revision of the delta
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13724
diff changeset
49 format: id, p1, p2, cset, delta base, len(delta)
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
50
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
51 changelog
14141
bd1cbfe5db5c bundler: make parsechunk return the base revision of the delta
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13724
diff changeset
52 0e067c57feba1a5694ca4844f05588bb1bf82342 3903775176ed42b1458a6281db4a0ccf4d9f287a 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 3903775176ed42b1458a6281db4a0ccf4d9f287a 80
bd1cbfe5db5c bundler: make parsechunk return the base revision of the delta
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13724
diff changeset
53 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0e067c57feba1a5694ca4844f05588bb1bf82342 80
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
54
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
55 manifest
14141
bd1cbfe5db5c bundler: make parsechunk return the base revision of the delta
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13724
diff changeset
56 686dbf0aeca417636fa26a9121c681eabbb15a20 8515d4bfda768e04af4c13a69a72e28c7effbea7 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 8515d4bfda768e04af4c13a69a72e28c7effbea7 55
bd1cbfe5db5c bundler: make parsechunk return the base revision of the delta
Benoit Boissinot <benoit.boissinot@ens-lyon.org>
parents: 13724
diff changeset
57 ae25a31b30b3490a981e7b96a3238cc69583fda1 686dbf0aeca417636fa26a9121c681eabbb15a20 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 686dbf0aeca417636fa26a9121c681eabbb15a20 55
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
58
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
59 b
27711
7a678a12a5cf mdiff: don't emit a diff header for empty trivial deltas
Mike Hommey <mh@glandium.org>
parents: 26864
diff changeset
60 b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 0
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
61
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
62 c
27711
7a678a12a5cf mdiff: don't emit a diff header for empty trivial deltas
Mike Hommey <mh@glandium.org>
parents: 26864
diff changeset
63 b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0000000000000000000000000000000000000000 0
13724
fe57046e9448 commands: add debugbundle command
Peter Arrenbrecht <peter.arrenbrecht@gmail.com>
parents:
diff changeset
64
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
65 $ hg debugbundle --all bundle2.hg
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
66 Stream params: {}
37841
d618558e4e8b debugbundle: also display if a part is mandatory or advisory
Boris Feld <boris.feld@octobus.net>
parents: 36965
diff changeset
67 changegroup -- {nbchanges: 2, version: 02} (mandatory: True)
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
68 format: id, p1, p2, cset, delta base, len(delta)
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
69
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
70 changelog
30211
6b0741d6d234 changegroup: skip delta when the underlying revlog do not use them
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29593
diff changeset
71 0e067c57feba1a5694ca4844f05588bb1bf82342 3903775176ed42b1458a6281db4a0ccf4d9f287a 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 66
6b0741d6d234 changegroup: skip delta when the underlying revlog do not use them
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 29593
diff changeset
72 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0000000000000000000000000000000000000000 66
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
73
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
74 manifest
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
75 686dbf0aeca417636fa26a9121c681eabbb15a20 8515d4bfda768e04af4c13a69a72e28c7effbea7 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 8515d4bfda768e04af4c13a69a72e28c7effbea7 55
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
76 ae25a31b30b3490a981e7b96a3238cc69583fda1 686dbf0aeca417636fa26a9121c681eabbb15a20 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 686dbf0aeca417636fa26a9121c681eabbb15a20 55
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
77
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
78 b
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
79 b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 0e067c57feba1a5694ca4844f05588bb1bf82342 0000000000000000000000000000000000000000 0
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
80
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
81 c
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
82 b80de5d138758541c5f05265ad144ab9fa86d1db 0000000000000000000000000000000000000000 0000000000000000000000000000000000000000 991a3460af53952d10ec8a295d3d2cc2e5fa9690 0000000000000000000000000000000000000000 0
37842
326b174c6a47 bundle2: mark the bundle2 part as advisory (issue5872)
Boris Feld <boris.feld@octobus.net>
parents: 37841
diff changeset
83 cache:rev-branch-cache -- {} (mandatory: False)
29062
906a1c8a75fd debugbundle: add tests for debugbundle output with bundle2
Mike Hommey <mh@glandium.org>
parents: 27711
diff changeset
84
16913
f2719b387380 tests: add missing trailing 'cd ..'
Mads Kiilerich <mads@kiilerich.com>
parents: 14141
diff changeset
85 $ cd ..