[MERGE] Port across errors for shallow branch support.

Robert Collins robertc at robertcollins.net
Thu Feb 21 01:09:12 GMT 2008


On Wed, 2008-02-20 at 00:05 -0500, Aaron Bentley wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Robert Collins wrote:
> > Ah. Well I've come to the conclusion that branch stacking is the most
> > scalable because all the other options seem likely to access many
> > spurious locations far too often.
> 
> I don't feel good about reviewing errors for branch stacking when I
> think branch stacking doesn't make sense.
> 
> If remote stacking locations are stored on a per-branch basis, then you
> can easily wind up in situations where a branch can't access the
> information it needs to construct the revision it wants.

Can you enlarge on this; I don't see how it can happen more or less
easily than with external references being stored in the repositories
control dir.

> Your post doesn't really clarify your reasoning to me, so I still think
> branch stacking is a bad idea.

First of all a lemma: Both approaches provide the same set of all
external references. The reason: all branches of a repository are within
the repository. Repositories have a find_branches method to find the
branches using the repository. If each branch has an external location
pointer, then in terms of getting access to all data:
>>> set([branch.get_stacked_location() for branch in r.find_branches()])
should return the same data (for a branch-orientated implementation) as 
>>> r.get_stacked_locations()
for a repository-orientated implementation.

Now, consider a repository with a number of branches, 5 or 6 of which
have external references.

In a repository centric implementation, all those external references
will be active always. This means that even entirely local operations
will access /all/ those external references whenever any missed key
lookup occurs. It forces repository-wide scaling on branch-wide
operations, which is fundamentally bad.

Only repository wide operations should display repository-wide scaling.

-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/20080221/8d1691be/attachment.pgp 


More information about the bazaar mailing list