[rfc] bzr-colo into core

Matthew D. Fuller fullermd at over-yonder.net
Sat Mar 26 11:33:44 UTC 2011


On Fri, Mar 25, 2011 at 05:46:35PM +1100 I heard the voice of
Martin Pool, and lo! it spake thus:
> 
> I think 'fascis' will cause bialix to say 'what is a fascis?' and if
> you say 'it means bundle' then he may very reasonably ask 'so it's
> like a bundle then?'

Confusing bialix is just ONE of the many wonderful features!  8-}


> One interesting thing you suggest that bzr-colo does not normally do
> (but can be forced to do) is to have a shared repository enclosing
> several fasces.  Obviously that is easy to keep.

Yes, this was one of the important bits I wanted to make sure got
kept.  The idea is that we move from

- Current: We have MetaDir1, which can contain a Repo, a WT, or a
  Branch (any 1, 2, or all 3 of these; actually, I guess it COULD
  contain 0 of them, but that would be stupid ;)

to

- New: We have MetaDir2, which can contain a Repo, a WT, or a Fascis
  (any 1, 2, or all 3; as above).  A Fascis is then a container that
  contains 1 or more sticks, each of which would generally be a
  Branch, but could be a Checkout (heavy or light) as well.

This means that all the 1-or-more Branches in the MetaDir2 would share
the internal repo; this gives us the "easy" default-flow where you can
make multiple branches without either duplicating all the history or
taking the extra manual step of making a shared repo.  But you can
still manually make a shared repo (presumably even a good old MetaDir1
shared repo), and multiple MetaDir2's can share it between themselves.

Corrolary (not strictly necessary, but nice for consistency) is that
we no longer need MetaDir1's[0] with single branches.  You can just
make a MetaDir2 and not create extra branches in it, and it'll work
the same as currently with 1-branch-per-dir.  And you can arbitrarily
blend; have one MetaDir2 with a couple dozen branches in it, but also
have another with just a single branch beside it, both sharing the
repo, for a single long-lived branch you want a separate WT for for
instance.



[0] MetasDir1?  MetaDirs1?  MetaDir1en?


-- 
Matthew Fuller     (MF4839)   |  fullermd at over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.



More information about the bazaar mailing list