Add branchtags function with cache
- cache stores tipmost node and rev and node,label pairs
- if cache is out of date, scan new changesets
- write new cache out after scan
#!/bin/sh
echo % init
hg init
echo % commit
echo 'a' > a
hg ci -A -m test -u nobody -d '1 0'
echo % annotate -c
hg annotate -c a
echo % annotate -d
hg annotate -d a
echo % annotate -n
hg annotate -n a
echo % annotate -u
hg annotate -u a
echo % annotate -cdnu
hg annotate -cdnu a
cat <<EOF >>a
a
a
EOF
hg ci -ma1 -d '1 0'
hg cp a b
hg ci -mb -d '1 0'
cat <<EOF >> b
b
b
b
EOF
hg ci -mb2 -d '2 0'
echo % annotate b
hg annotate b
echo % annotate -nf b
hg annotate -nf b
hg up -C 2
cat <<EOF >> b
b
c
b
EOF
hg ci -mb2.1 -d '2 0'
hg merge
hg ci -mmergeb -d '3 0'
echo % annotate after merge
hg annotate -nf b
hg up -C 1
hg cp a b
cat <<EOF > b
a
z
a
EOF
hg ci -mc -d '3 0'
hg merge
cat <<EOF >> b
b
c
b
EOF
echo d >> b
hg ci -mmerge2 -d '4 0'
echo % annotate after rename merge
hg annotate -nf b