[RFC] Meta-branch
Robert Collins
robertc at robertcollins.net
Wed Feb 22 03:44:47 GMT 2006
On Tue, 2006-02-21 at 21:32 -0600, John Arbash Meinel wrote:
> Robert Collins wrote:
> > The discussion about tags and earlier about the location of subtree-root
> > branch storage/branches seems to coalesce into a single prerequisite
> > feature: a branch of data about the users branch. This data should
> > propogate, and people should be able to record decisions in it without
> > 'committing' to their source code.
> >
> > So heres a proposal for a meta-branch feature.
> >
> > A meta branch records data about a branch. It coexists with the branch
> > at the same URL and has:
> > * Its own 'meta-last-revision'
> > * One weave/knit for each thing it records, today that will be 'tags'
> > and 'subtree-locations' and stored in the repository
> > as .bzr/repository/tags and .bzr/repository/subtree-locations
>
> My concern is that 'tags' should actually be a branch property, not a
> repository property.
Its a branch property delta compressed by the repository.
> Otherwise, how do I give "release-0.7" to both libfoo and progbaz.
Indeed, that was a problem with the initial proposals.
> If we make them a repository property, I always have to fully qualify my
> tag names "libfoo-release-0.7"
>
> It is workable, but since I have to have the environment of a branch in
> order to 'get', it seems unnecessary.
you would not need to in this proposal: the meta-last-revision marker
gives you a unique, branch qualified, copy of the tags - you will not
see other branches tags.
> > * Conflicts in meta-branch pull operations are recorded
> > in .bzr/checkout/somefilename.
> > * Operations on these files - i.e. bzr vitags - will validate the file
> > and commit them immediately to the meta-branch.
> > * conflict resolution on them will only do a commit to the meta-branch
> > when all the meta-data is resolved.
> > * if possible all the files in the metabranch will be merged in the
> > same way, but that is not a requirement.
> >
> >
> > This should allow simple implementations of tags and subtree locations,
> > with minimal performance impact and the ability to share tags and update
> > the locations of subtrees for old branches without 'dummy' commits.
> >
> > Rob
>
> I like the simplicity of the design. Having meta-information about the
> branch, versioned as meta-information (as a layer above the branch, not
> below it), seems correct.
>
> I wonder, though about merging. For example, subtree locations seems to
> just be a stack. Where all locations are reasonable, just that they
> should take LIFO precedence, and sometimes when one is not available,
> you *will* try an earlier one. Versus 'tags' which seem like only the
> latest one should be readily available. The old ones are only present
> for posterity and merging sake.
Its entirely possible that we want different merge tweaks on the two
files in the meta-branch, but as they are both versioned I don't see it
being really relevant to the meta-branch proposal per se.
> So, I'm not 100%, but I wouldn't give you a minus on it.
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/20060222/26fd9cd5/attachment.pgp
More information about the bazaar
mailing list