Store empty (default) branch in branch cache, too.
Operations on this branch don't work otherwise.
Reading branches.cache had to be adjusted to allow an empty label.
Adjusted reading of the cache tip for symmetry, no functional change here.
#!/bin/sh
hg init a
echo a > a/a
hg --cwd a ci -Ama
hg clone a c
hg clone a b
echo b >> b/a
hg --cwd b ci -mb
echo % push should push to default when default-push not set
hg --cwd b push | sed 's/pushing to.*/pushing/'
echo % push should push to default-push when set
echo 'default-push = ../c' >> b/.hg/hgrc
hg --cwd b push | sed 's/pushing to.*/pushing/'