packs and knits

Robert Collins robertc at robertcollins.net
Tue Aug 7 05:38:03 BST 2007


On Tue, 2007-08-07 at 00:07 -0400, Aaron Bentley wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Robert Collins wrote:
> > Now, we don't want derivable data in the packs *eventually*, but I think
> > a good start would be to get to the point of having optional indices.
> > Then we can work on making semi derived data cleanly rederivable.
> 
> It seems to me that making derivable data *optional* is useful, but some
> derivable data is, nonetheless, expensive to derive.  I think that
> discarding such calculations in all cases would be a mistake.

Oh, I agree. Nevertheless, at the moment we have no choice.

> > Now, currently there can only be one representation of a knit delta to
> > construct a given text
> 
> If you mean that records can only be in knit delta format, that is
> correct.

No.

>   If you mean that, in knit delta format, there is only one way
> to represent the delta between two texts, that is not true in the
> general case.  Different approaches to sequence matching will produce
> different deltas most of the time.

This is true. But its also not what I mean. What I mean is that we only
have one record in knits today that is named by a given revision. e.g.
for fileid FOO, to get revision BAR, we *either* have a delta against
the file-graph left most parent of BAR, or a fulltext. We never have
other things like:
a delta against a different text
a delta stored without annotations
or ....

> > so it makes sense to me to name the record
> > ('text', fileid, revisionid). (for a revision knit that would be
> > ('revision', revisionid, etc) - just namespacing.
> 
> How would you name a fulltext?

('text', fileid, revisionid). This is not necessarily the final scheme -
I'm trying to change one variable at a time at the moment.

> > If this makes sense I'll put a patch together to do a Pack version bump
> > and API bump to allow tuple based naming.
> 
> I think tuple-based naming would be very nice, and I wish I'd had it for
>  Bundle format 4.
> 
> How will your proposed bumps affect Bundles?

0.18 has your bundle format 4 right? So, there will be a new bundle
signature for bundles with tuple based names. We may choose to write the
old signature out when the name is compatibly encoded with the original
bundle code. 
I plan to change the API across the code base, possibly deprecating and
introducing a new method - I'll look closely at options and names when I
tackle this.

Thanks for the feedback.

-Rob
-- 
GPG key available at: <http://www.robertcollins.net/keys.txt>.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20070807/bbd6d7d7/attachment-0001.pgp 


More information about the bazaar mailing list