#!/bin/sh
hg init t
cd t
hg branches
echo foo > a
hg add a
hg ci -m "initial" -d "1000000 0"
hg branch foo
hg branch
hg ci -m "add branch name" -d "1000000 0"
hg branch bar
hg ci -m "change branch name" -d "1000000 0"
hg branch ""
hg ci -m "clear branch name" -d "1000000 0"
hg co foo
hg branch
echo bleah > a
hg ci -m "modify a branch" -d "1000000 0"
hg merge
hg branch
hg ci -m "merge" -d "1000000 0"
hg log
hg branches
hg branches -q
echo % test for invalid branch cache
hg rollback
cp .hg/branches.cache .hg/bc-invalid
hg log -r foo
cp .hg/bc-invalid .hg/branches.cache
hg --debug log -r foo
rm .hg/branches.cache
echo corrupted > .hg/branches.cache
hg log -qr foo
cat .hg/branches.cache
echo % test for different branch cache features
echo '4909a3732169c0c20011c4f4b8fdff4e3d89b23f 4' > .hg/branches.cache
hg branches --debug
echo ' features: unnamed dummy foo bar' > .hg/branches.cache
hg branches --debug
echo ' features: dummy' > .hg/branches.cache
hg branches --debug
echo % test old hg reading branch cache with feature list
python << EOF
import binascii
f = file('.hg/branches.cache')
lines = f.read().split('\n')
f.close()
firstline = lines[0]
last, lrev = lines.pop(0).rstrip().split(" ", 1)
try:
last, lrev = binascii.unhexlify(last), int(lrev)
except ValueError, inst:
if str(inst) == "invalid literal for int():%s" % firstline:
print "ValueError raised correctly, good."
else:
print "ValueError: %s" % inst
EOF
echo % update with no arguments: tipmost revision of the current branch
hg up -q -C 0
hg up -q
hg id
hg up -q 1
hg up -q
hg id