Stacking and VersionedFiles, a state-of-the-patch mail

Robert Collins robertc at robertcollins.net
Thu Jun 12 05:32:58 BST 2008


So here is where stacking is at:

There is a basic UI and an implementation that depends on the internals
of pack repository layout and implementation.

It needs a abstract interface for getting multiple file versions from
another repository (including revisions, signatures, inventories and
texts) to stop depending on the internals and start working with
RemoteRepository etc.

VersionedFiles is this abstract interface. Its a landing of many ideas
we've discussed more-or-less over the last $while. Its not all-the-way
to reaching some of the things we've discussed, but the vast bulk of the
cruft in this part of the bzr package has been cleaned up. The patch
deletes much more than it adds :).

VersionedFiles needs a replacement for
Repository.get_data_stream_for_search.

And it would be nice to have a network RPC for e.g.
texts.get_record_stream rather than falling back to VFS access.

There is a related open question about merge vs tree building.

Concretely tree building needs all the files for a revision. So
Some_verb(revision_id) 
is all we need to generate the right stream.
However, merge only wants some files - typically the basis file which
may not be local - 
Some_verb([list_of_text_keys])
is appropriate there.

We could do:
Some_verb(revision_id) -> stream
And then filter to handle the second case, but in (say) open office
trees, that would suck.

Likewise, doing tree building by asking fora  list of keys for open
office will send a huge amount of data over the wire :).

Not to fear though! I think the approach of having a new shallow branch
be preseeded with the content needed to build the tree fixes this
because we can ask locally for a list safely, and the fetch code works
at the revision graph level - we just need the (previously discussed)
flag for fetching streams to ask for fulltext capability.

-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/20080612/da766f58/attachment.pgp 


More information about the bazaar mailing list