store all heads of a branch in the branch cache
All heads of branches will be stored in a new cache file 'branchheads.cache'
within the .hg directory. The old 'branch.cache' file from older versions
will be ignored.
The new cache contents are formatted line-by-line as '{node} {branchtag}\n'.
This is the same as the previous format. Now, every head is recorded in
an oldest -> tipmost order.
The localrepo.branchheads function is reworked to use the data from the cache.
echo % setting up repo
hg init test
cd test
echo a > a
echo b > b
hg ci -Ama
echo % change permissions for git diffs
chmod 755 a
hg ci -Amb
echo % set up hgweb
hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
cat hg.pid >> $DAEMON_PIDS
echo % revision
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
echo % diff removed file
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
echo % set up hgweb with git diffs
"$TESTDIR/killdaemons.py"
hg serve --config 'diff.git=1' -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
cat hg.pid >> $DAEMON_PIDS
echo % revision
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/rev/0'
echo % diff removed file
"$TESTDIR/get-with-headers.py" localhost:$HGPORT '/diff/tip/a'
echo % errors
cat errors.log