Caching 'dotted_revnos' and merge_sort
Ian Clatworthy
ian.clatworthy at canonical.com
Thu Apr 8 06:41:32 BST 2010
On 08/04/10 12:38, John Arbash Meinel wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>
>>> Basically I'm wondering if the benefits of dotted revnos justify the
>>> costs (both in existing runtime, and in developer effort to optimise
>>> that runtime)?
I agree we ought to be asking this question. "Fast" is a large part of
usable.
> I'm finishing up the 'lazy' merge_sort code in the plugin now. I have
> some basics working, but I think I'm missing some edge cases.
>
> Anyway, I'll let you know in a bit where I get to. I've found some
> decent bounds on all operations. Currently dotted_revnos do have more
> overhead than *just* merge_sort. (There are times when I can compute
> what revisions where merged, and not yet know what numbers to assign
> them.) But often it isn't far off.
>
> Well, I need to finish making it correct, and then run it on more real
> histories to see what bits I'm missing in my understanding... :) But at
> least for cases I've analyzed the bounds are generally "you have to go
> back to the originating revision, but no farther".
That sounds pretty promising. If we do change the numbering scheme for
non-mainline revisions, let's make sure that the performance impact in
both directions (revid <-> revno) is well understood and, ideally, as
low as possible.
Ian C.
More information about the bazaar
mailing list