[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