[MERGE] Implement annotation for knits with no annotation cache

Aaron Bentley aaron.bentley at utoronto.ca
Fri Aug 31 21:10:13 BST 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi all,

This patch implements annotation for plaintext knits, i.e. knits with no
annotation cache.  Currently when you annotate such knits, all the lines
are attributed to the current revision.

It also includes a bugfix for reannotate in the 0-parent case.

Robert is exploring the possibility of eschewing annotation for the next
repository format, so this work will be necessary if we go in that
direction.

As in other areas, the slowness of sequence matching is a drag on
performance.  This patch reuses the sequence matching from knit deltas,
but they do not provide a full cache-- they don't provide any parent
other than the left parent, and they don't provide sequence matching for
fulltexts.  As a result, about half (50%-60%) of annotation time is
spent doing sequence matching.  (on 279 out of 765 revisions)

Annotating NEWS takes:
real    1m20.191s
user    1m17.149s
sys     0m0.656s

If we're really going annotation free, we should seriously consider
caching sequence matches.  And it would help tremendously if the
fulltexts were annotated.

Caching sequence matches would also accelerate (historical) merge and
diff operations.  However, to accelerate annotate merge, we'd need to
reduce the annotation range to uncommon ancestors.

Multi-parent diffs with a single parent contain the matching blocks in
pristine form, but if there are multiple parents, the matching blocks
cannot be retrieved.  But MPdiff's text-building algorithm is also
well-suited to simultaneously building and annotating the text in the
single-parent case.

Aaron
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFG2HWl0F+nu1YWqI0RAiTiAJwPszma4uNKI08GP5ln8be2TcsR3gCfa9kO
qJRWWfB9B5xWGTM/Zmmccjw=
=zH9X
-----END PGP SIGNATURE-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pack-annotate.patch
Type: text/x-patch
Size: 16948 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070831/58710367/attachment-0001.bin 


More information about the bazaar mailing list