check/reconcile and _very_ old history

Martin Pool mbp at sourcefrog.net
Fri Feb 6 06:41:41 GMT 2009


2009/2/5 Robert Collins <robertc at robertcollins.net>:
> I think there are three basic fixes:
>  - stop checking for 'correct'. This will lead to very old unmodified
> texts being refetched every 200 revisions. In big trees this will be a
> big deal
>  - rewrite the inventories to claim a more valid text key - either to
> have their own, or to use an appropriate parent if the content had not
> changed.
>  - use the references the inventories have without filtering, but
> perform a diff against the adjacent parent inventories that we are not
> fetching

Do you mean, perform a diff against the parent inventories to see what
texts were newly introduce, and fetch them, rather than relying on the
newly introduced texts matching the new revision id?  That sounds
sensible, probably reasonably efficient in both old and new formats,
and likely to be robust.  +1

>
> The last option is what brisbane-core is designed to do efficiently, but
> we can do it without _to much_ work I think for xml inventories. The
> adjacent inventories are usually available locally (for pull), or local
> (for push). So we could deserialise them, scan for refs, and cut the
> contents out.
>
> I think the last option is appropriate because it doesn't require
> rewriting inventories (which breaks digital signatures etc), and is
> robust in a conceptual sense.
>
> I need feedback here, because I want to fix this issue so I can get back
> to groupcompress benchmarking.

Hope that helped

-- 
Martin <http://launchpad.net/~mbp/>



More information about the bazaar mailing list