tests/test-rhg-no-generaldelta.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 20 Feb 2024 21:40:13 +0100
changeset 51406 f8bf1a8e9181
parent 48458 96ea4db4741b
permissions -rw-r--r--
phases: keep internal state as rev-num instead of node-id Node-id are expensive to work with, dealing with revision is much simple and faster. The fact we still used node-id here shows how few effort have been put into making the phase logic fast. We tend to no longer use node-id internally for about ten years. This has a large impact of repository with many draft roots. For example this Mozilla-try copy have ½ Million draft roots and `perf::unbundle` see a significant improvement. ### data-env-vars.name = mozilla-try-2023-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.perf-unbundle # bin-env-vars.hg.flavor = no-rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = disabled # benchmark.variants.revs = last-1 before:: 1.746791 seconds after:: 1.278379 seconds (-26.82%) # benchmark.variants.revs = last-10 before:: 3.145774 seconds after:: 2.103735 seconds (-33.13%) # benchmark.variants.revs = last-100 before:: 3.487635 seconds after:: 2.446749 seconds (-29.85%) # benchmark.variants.revs = last-1000 before:: 5.007568 seconds after:: 3.989923 seconds (-20.32%)
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
48456
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     1
  $ NO_FALLBACK="env RHG_ON_UNSUPPORTED=abort"
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     2
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     3
  $ cat << EOF >> $HGRCPATH
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     4
  > [format]
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     5
  > sparse-revlog = no
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     6
  > EOF
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     7
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     8
  $ hg init repo --config format.generaldelta=no --config format.usegeneraldelta=no
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     9
  $ cd repo
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    10
  $ (echo header; seq.py 20) > f
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    11
  $ hg commit -q -Am initial
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    12
  $ (echo header; seq.py 20; echo footer) > f
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    13
  $ hg commit -q -Am x
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    14
  $ hg update ".^"
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    15
  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    16
  $ (seq.py 20; echo footer) > f
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    17
  $ hg commit -q -Am y
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    18
  $ hg debugdeltachain f --template '{rev} {prevrev} {deltatype}\n'
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    19
  0 -1 base
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    20
  1 0 prev
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    21
  2 1 prev
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    22
48458
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    23
rhg works on non-generaldelta revlogs:
48456
e33d7c39db47 rhg: demonstrate that rhg breaks on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    24
48458
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    25
  $ $NO_FALLBACK hg cat f -r .
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    26
  1
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    27
  2
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    28
  3
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    29
  4
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    30
  5
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    31
  6
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    32
  7
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    33
  8
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    34
  9
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    35
  10
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    36
  11
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    37
  12
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    38
  13
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    39
  14
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    40
  15
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    41
  16
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    42
  17
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    43
  18
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    44
  19
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    45
  20
96ea4db4741b rhg: fix a crash on non-generaldelta revlogs
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents: 48456
diff changeset
    46
  footer