tests/test-strip-branch-cache.t
author Pierre-Yves David <pierre-yves.david@octobus.net>
Thu, 01 Sep 2022 15:49:14 +0200
branchstable
changeset 49469 b5c8524827d2
parent 49071 9caf23927d04
child 51492 2e8a88e5809f
permissions -rw-r--r--
dirstate-v2: no longer register the data-file during transaction If the data file change during the transaction, we cannot truncate it. The content of the file itself is fine as it will get backed up at the same time as the docket. Leaving the trailing data at the end of failed transaction is fine. The dirstate-v2 format supports it. The dead data will simply we written over if necessary.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
49071
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     1
Define helpers.
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     2
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     3
  $ 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
     4
  $ 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
     5
  $ 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
     6
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
     7
Setup hg repo.
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
  $ hg init repo
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    10
  $ cd repo
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    11
  $ 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
    12
  $ hg clone -q . ../clone
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    13
  $ commit a
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    14
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    15
  $ cd ../clone
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
  $ commit b
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
  $ hg pull -q ../repo
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
  $ cat .hg/cache/branch2-visible
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    22
  222ae9789a75703f9836e44de7db179cbfd420ee 2
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    23
  a3498d6e39376d2456425dd8c692367bdbf00fa2 o default
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    24
  222ae9789a75703f9836e44de7db179cbfd420ee o default
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    25
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    26
  $ hg_log
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    27
  o  2:222ae9789a75
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    28
  |
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    29
  | @  1:a3498d6e3937
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
  o  0:7ab0a3bd758a
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    32
  
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
  $ strip '1:'
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
The branchmap cache is not adjusted on strip.
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    37
Now mentions a changelog entry that has been stripped.
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
  $ cat .hg/cache/branch2-visible
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    40
  222ae9789a75703f9836e44de7db179cbfd420ee 2
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    41
  a3498d6e39376d2456425dd8c692367bdbf00fa2 o default
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    42
  222ae9789a75703f9836e44de7db179cbfd420ee o default
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    43
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    44
  $ commit c
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    45
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    46
Not adjusted on commit, either.
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    47
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    48
  $ cat .hg/cache/branch2-visible
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    49
  222ae9789a75703f9836e44de7db179cbfd420ee 2
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    50
  a3498d6e39376d2456425dd8c692367bdbf00fa2 o default
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    51
  222ae9789a75703f9836e44de7db179cbfd420ee o default
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    52
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    53
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
    54
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    55
  $ hg pull ../repo 2>&1 | grep 'ValueError:'
9caf23927d04 branchmap: add a test that shows bad interaction with strip
Arseniy Alekseyev <aalekseyev@janestreet.com>
parents:
diff changeset
    56
  ValueError: node a3498d6e39376d2456425dd8c692367bdbf00fa2 does not exist (known-bad-output !)