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-----
<div class="parity#parity#">
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="right" width="15%"><b>#age# ago: </b></td>
<td><b>#shortdesc#</b></td</tr>
<tr>
<td align="right">changeset #rev#: </td>
<td><a href="?cmd=changeset;node=#node#">#node#</a></td></tr>
#parent1#
#parent2#
<tr>
<td align="right">author: </td>
<td>#author#</td></tr>
<tr>
<td align="right">date: </td>
<td>#date#</td></tr>
<tr>
<td align="right" valign="top"><a href="?cmd=manifest;manifest=#manifest#;path=/">files</a>: </td>
<td>#files#</td></tr>
</table>
</div>