Mercurial > hg
view tests/test-strip-branch-cache.t @ 52192:54be3c9bc81f stable
tests: conditionalize missing output in test-racy-mutations.t on Windows
No idea why this is only missing on Windows. I verified that the line marked
as missing directly above this for the changelog is, in fact, missing on both
Windows and Linux. So there's probably work to do in this area on all
platforms. It would be nice to figure out what is going on, but this appeases
CI in the meantime.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 05 Nov 2024 11:48:22 -0500 |
parents | 82c1a388e86a |
children |
line wrap: on
line source
This test cover a bug that no longer exist. 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 $ ls -1 .hg/cache/branch?* .hg/cache/branch2-base .hg/cache/branch2-served $ cat .hg/cache/branch?-served 222ae9789a75703f9836e44de7db179cbfd420ee 2 a3498d6e39376d2456425dd8c692367bdbf00fa2 o default 222ae9789a75703f9836e44de7db179cbfd420ee o default $ hg_log o 2:222ae9789a75 | | @ 1:a3498d6e3937 |/ o 0:7ab0a3bd758a $ strip '1:' After the strip the "served" cache is now identical to the "base" one, and the older one have been actively deleted. $ ls -1 .hg/cache/branch?* .hg/cache/branch2-base $ cat .hg/cache/branch?-base 7ab0a3bd758a58b9f79557ce708533e627776cce 0 7ab0a3bd758a58b9f79557ce708533e627776cce o default We do a new commit and we get a new valid branchmap for the served version $ commit c $ ls -1 .hg/cache/branch?* .hg/cache/branch2-base .hg/cache/branch2-served $ cat .hg/cache/branch?-served a1602b357cfca067600406eb19060c7128804d72 1 a1602b357cfca067600406eb19060c7128804d72 o default On pull we end up with the same tip, and so wrongly reuse the invalid cache and crash. $ hg pull ../repo --quiet $ hg heads -T '{rev} {node} {branch}\n' 2 222ae9789a75703f9836e44de7db179cbfd420ee default 1 a1602b357cfca067600406eb19060c7128804d72 default $ ls -1 .hg/cache/branch?* .hg/cache/branch2-base .hg/cache/branch2-served $ cat .hg/cache/branch?-served 222ae9789a75703f9836e44de7db179cbfd420ee 2 a1602b357cfca067600406eb19060c7128804d72 o default 222ae9789a75703f9836e44de7db179cbfd420ee o default