storage branch - control_files - public or private

John Arbash Meinel john at arbash-meinel.com
Thu Jan 5 19:05:38 GMT 2006


Jan Hudec wrote:
> On Thu, Jan 05, 2006 at 09:49:09 -0600, John Arbash Meinel wrote:
> 
>>Robert Collins wrote:
>>
>>>On Wed, 2006-01-04 at 21:12 -0600, John Arbash Meinel wrote:
>>>This implies that branches repositories and checkouts start to look like
>>>random file storage areas. I think thats bad. Rather than that, how
>>>about we offer specific apis for the things we want to support ? I.e. If
>>>you as a plugin author need to save settings, get a BranchConfig and
>>>set_user_setting on that. That there covers off all key-value settings
>>>for plugin authors. 
>>>
>>>Do we want random file storage to be part of the service offered by
>>>branches/repositories/checkouts ?
>>
>>I'm not sure about random file storage. But if someone wants to
>>implement something like 'tags', it would be nice to give them a hook
>>they can use. Not everything is possible with a branch config.
>>
>>Also, some plugins should make changes to the checkout (x-rsync-data),
>>other ones will be more about the branch (tags), and maybe some would be
>>repository specific.
> 
> 
> I believe most of the data is stored in XML, right? Most data structures can
> be represented as XML. So it should be enough for most purposes if the
> plugins could insert chunks of XML in strategically selected spots. In the
> revision, in the branch and few similar places.
> 

That is something we want to support. But my concern is wanting to let
people extend bzr in lots of ways, especially in ways that we don't see
yet. For example, with tags, you want to be able to retrospectively set
a tag name for a revision. Which means that it can't really be a
property of the revision itself, since it may be added and removed.
Which means it probably should go into its own file.

Something like bound branches would be a per-branch property, which
could be saved in branch-settings file.

The biggest problem is that I don't know specifically what we might
need. But I do know what we have done so far. And because we have access
to branch.controlfile(), it was possible to create a plugin which
allowed tag support.

I'm a huge fan of bzr's plugin support. It has let me do all sorts of
stuff, and still be using a pristine bzr (so I don't have to keep
patching my branch whenever a bugfix is released).

Wherever possible I try to develop bzr with a factory model, so that
plugins can just tie into a factory to add functionality, rather than
monkey patching or decorating.

John
=:->

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 256 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20060105/919e2b2f/attachment.pgp 


More information about the bazaar mailing list