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-----
#header#
<title>#repo#: changelog</title>
</head>
<body>
<div class="buttons">
<a href="?cmd=tags">tags</a>
<a href="?cmd=manifest;manifest=#manifest#;path=/">manifest</a>
</div>
<h2>changelog for #repo#</h2>
<form>
search:
<input type="hidden" name="cmd" value="changelog">
<input name="rev" type="text" width="30">
navigate: <small>#changenav#</small><br/>
</form>
#entries#
<form>
search:
<input type="hidden" name="cmd" value="changelog">
<input name="rev" type="text" width="30">
navigate: <small>#changenav#</small><br/>
</form>
#footer#