Mercurial > hg
changeset 49071:9caf23927d04
branchmap: add a test that shows bad interaction with strip
Differential Revision: https://phab.mercurial-scm.org/D12549
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Wed, 13 Apr 2022 14:40:11 +0100 |
parents | 137a93125902 |
children | 3cd57e2be49b |
files | tests/test-strip-branch-cache.t |
diffstat | 1 files changed, 56 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-strip-branch-cache.t Wed Apr 13 14:40:11 2022 +0100 @@ -0,0 +1,56 @@ +Define helpers. + + $ hg_log () { hg log -G -T "{rev}:{node|short}"; } + $ commit () { echo "foo - ${2:-$1}" > $1; hg commit -Aqm "Edited $1"; } + $ strip() { hg --config extensions.strip= strip -q -r "$1" ; } + +Setup hg repo. + + $ hg init repo + $ cd repo + $ touch x; hg add x; hg commit -m "initial" + $ hg clone -q . ../clone + $ commit a + + $ cd ../clone + + $ commit b + + $ hg pull -q ../repo + + $ cat .hg/cache/branch2-visible + 222ae9789a75703f9836e44de7db179cbfd420ee 2 + a3498d6e39376d2456425dd8c692367bdbf00fa2 o default + 222ae9789a75703f9836e44de7db179cbfd420ee o default + + $ hg_log + o 2:222ae9789a75 + | + | @ 1:a3498d6e3937 + |/ + o 0:7ab0a3bd758a + + + $ strip '1:' + +The branchmap cache is not adjusted on strip. +Now mentions a changelog entry that has been stripped. + + $ cat .hg/cache/branch2-visible + 222ae9789a75703f9836e44de7db179cbfd420ee 2 + a3498d6e39376d2456425dd8c692367bdbf00fa2 o default + 222ae9789a75703f9836e44de7db179cbfd420ee o default + + $ commit c + +Not adjusted on commit, either. + + $ cat .hg/cache/branch2-visible + 222ae9789a75703f9836e44de7db179cbfd420ee 2 + a3498d6e39376d2456425dd8c692367bdbf00fa2 o default + 222ae9789a75703f9836e44de7db179cbfd420ee o default + +On pull we end up with the same tip, and so wrongly reuse the invalid cache and crash. + + $ hg pull ../repo 2>&1 | grep 'ValueError:' + ValueError: node a3498d6e39376d2456425dd8c692367bdbf00fa2 does not exist (known-bad-output !)