[RFC] Workingtree.set_parent_trees()

Robert Collins robertc at robertcollins.net
Tue Aug 8 00:28:51 BST 2006


I have a new api I plan to introduce:

WorkingTree.set_parent_trees(self, parents_list):
"""Set the parents of the working tree.

:param parents_list: A list of (revision_id, tree) tuples. 
If tree is None, then that element is treated as an unreachable
    parent tree - i.e. a ghost.
"""


This supplants both WT.set_last_revision and WT.set_pending_merges. Its
designed to give the tree object the maximum data it needs in one hit to
avoid needless handshaking that currently happens. (for instance,
caching the basis revision can be done by taking
parents_list[0][1].inventory rather than unpacking it anew from the
repository.

I think this is a win for all tree types - but do we still want
set_last_revision and set_pending_merges? In some ways its nice to have
these separate semantically clear apis, but in another respect its kind
of misleading - the specialness of the first parent vs the other parents
is rather less in our underlying storage than the api suggests. (See for
instance my abuse of the api to do correct imports from baz).

I'd like to deprecate set_last_revision and set_pending_merges in favour
of set_parent_trees for 0.10.

Cheers,
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: 191 bytes
Desc: This is a digitally signed message part
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060808/f1cc28f6/attachment.pgp 


More information about the bazaar mailing list