annotate: deal with merges
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
annotate: deal with merges
This rewrite of the annotate code deals with merges:
- - find all ancestors
- - sort ancestors topologically
- - for each ancestor, pairwise annotate with parents
- - keep a cache of annotations for efficiency
manifest hash: b960d9b9c6a7f6ba351c97675b00a1dd3004dcf1
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (GNU/Linux)
iD8DBQFCnJclywK+sNU5EO8RAphZAKCkUuHh4jEJz7YwD9uzCT76GaSR/wCfUVUQ
VbGna/9jrOAFlrB3mZ3e4qg=
=yDFy
-----END PGP SIGNATURE-----
#!/bin/sh -x
set +e
BASE=foo.base
BR1=foo.br1
BR2=foo.br2
BR2_1=foo.br2_1
mkdir $BASE
cd $BASE
hg init
echo test > file
hg add file
EDITOR="echo 'initial commit' > " hg commit
cd ..
mkdir $BR1
cd $BR1
hg branch ../$BASE
hg checkout
echo test > file1
hg addremove
EDITOR="echo side commit >" hg commit
cd ..
mkdir $BR2
cd $BR2
hg branch ../$BASE
hg checkout
echo yet more >> file2
hg addremove
EDITOR="echo second update >" hg commit
cd ..
mkdir $BR2_1
cd $BR2_1
hg branch ../$BR2
hg checkout
EDITOR="echo commit merge >" hg merge ../$BR1
hg checkout