tests/test-strip-branch-cache.t
author Raphaël Gomès <rgomes@octobus.net>
Wed, 19 Jun 2024 17:19:20 +0200
changeset 51856 384016e91947
parent 51493 82c1a388e86a
permissions -rw-r--r--
revlog: simplify rawtext return value We're always returning a tuple even though only the raw text is being used, and we're rebuilding another tuple again higher. As a bonus, this will remove one tuple creation and deletion per `raw_text` call, hence fewer gc calls, etc.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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