annotate tests/test-ssh-repoerror.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 adecb1ab4a0d
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47587
be496e3489b9 tests: blacklist a handful of test with `rhg` or `chg`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45906
diff changeset
1 #require unix-permissions no-root no-windows no-rhg
be496e3489b9 tests: blacklist a handful of test with `rhg` or `chg`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45906
diff changeset
2
be496e3489b9 tests: blacklist a handful of test with `rhg` or `chg`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45906
diff changeset
3 XXX-RHG this test hangs if `hg` is really `rhg`. This was hidden by the use of
be496e3489b9 tests: blacklist a handful of test with `rhg` or `chg`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45906
diff changeset
4 `alias hg=rhg` by run-tests.py. With such alias removed, this test is revealed
be496e3489b9 tests: blacklist a handful of test with `rhg` or `chg`
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 45906
diff changeset
5 buggy. This need to be resolved sooner than later.
39382
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
6
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
7 repository itself is non-readable
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
8 ---------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
9
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
10 $ hg init no-read
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
11 $ hg id ssh://user@dummy/no-read
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
12 000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
13 $ chmod a-rx no-read
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
14
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
15 $ hg id ssh://user@dummy/no-read
50292
adecb1ab4a0d tests: add a rewriting step to detect EACCES errors
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47921
diff changeset
16 remote: abort: $EACCES$: *$TESTTMP/no-read/.hg* (glob)
45906
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 41420
diff changeset
17 abort: no suitable response from remote hg
39382
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
18 [255]
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
19
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
20 special case files are visible, but unreadable
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
21 ----------------------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
22
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
23 This is "similar" to the test above, but the directory is "traversable". This
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
24 seems an unexpected case in real life, but we test it anyway.
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
25
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
26 $ hg init other
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
27 $ hg id ssh://user@dummy/other
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
28 000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
29 $ for item in `find other | sort -r` ; do
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
30 > chmod a-r $item
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
31 > done
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
32
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
33 $ hg id ssh://user@dummy/other
50292
adecb1ab4a0d tests: add a rewriting step to detect EACCES errors
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47921
diff changeset
34 remote: abort: $EACCES$: '$TESTTMP/other/.hg/requires'
45906
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 41420
diff changeset
35 abort: no suitable response from remote hg
39382
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
36 [255]
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
37
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
38 directory toward the repository is read only
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
39 --------------------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
40
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
41 $ mkdir deep
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
42 $ hg init deep/nested
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
43
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
44 $ hg id ssh://user@dummy/deep/nested
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
45 000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
46
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
47 $ chmod a-rx deep
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
48
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
49 $ hg id ssh://user@dummy/deep/nested
50292
adecb1ab4a0d tests: add a rewriting step to detect EACCES errors
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 47921
diff changeset
50 remote: abort: $EACCES$: *$TESTTMP/deep/nested/.hg* (glob)
45906
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 41420
diff changeset
51 abort: no suitable response from remote hg
39382
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
52 [255]
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
53
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
54 repository has wrong requirement
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
55 --------------------------------
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
56
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
57 $ hg init repo-future
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
58 $ hg id ssh://user@dummy/repo-future
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
59 000000000000
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
60 $ echo flying-car >> repo-future/.hg/requires
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
61 $ hg id ssh://user@dummy/repo-future
45906
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 41420
diff changeset
62 remote: abort: repository requires features unknown to this Mercurial: flying-car
39382
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
63 remote: (see https://mercurial-scm.org/wiki/MissingRequirement for more information)
45906
95c4cca641f6 errors: remove trailing "!" from some error messages for consistency
Martin von Zweigbergk <martinvonz@google.com>
parents: 41420
diff changeset
64 abort: no suitable response from remote hg
39382
a7e22dd31f54 test: add a test file that displays ssh behavior in front of various errors
Boris Feld <boris.feld@octobus.net>
parents:
diff changeset
65 [255]