[PATCH] cascading lookup support in LocationConfig (bug 33430)

James Henstridge james at jamesh.id.au
Wed Sep 20 01:53:35 BST 2006

On 19/09/06, Aaron Bentley <aaron.bentley at utoronto.ca> wrote:
> James Henstridge wrote:
> > The problem I see with this is that it affects all configuration data
> > inside the section.
> Yes, this is a problem I saw also.
> > I suppose another method would be to encode the policy into the
> > section name.  Maybe something like this?
> >
> >    [/some/branch]
> >    email = My email
> >
> >    [/some/branch#no-recurse]
> >    push_location = sftp://...
> I was also considering "[/some/branch/*]".    One problem is that
> bzr/branch.conf and ~/.bazaar/global.conf don't have sections.

Well, the policy for those two files are fairly well defined already,
aren't they?  I think we only need to worry about locations.conf at
this point.

> But another alternative would be to configure values individually.  I'm
> not sure what that would look like.  I guess it could be:
> [/some/branch]
> submit_location = sftp://..
> recursive_submit_location = True
> push_location = sftp://..
> recursive_push_location = True
> or
> [/some/branch]
> submit_location = sftp://..
> push_location = sftp://..
> # ConfigObj understands lists natively
> recursive = ["push_location", "submit_location"]
> > Something similar could be done for the "append remaining path
> > components to config value" policy you mentioned earlier in this
> > thread.  An alternative to the above syntax might be "?recurse=false"
> > -- both couldn't be confused with URI path components.
> Hmm.  It would mean that people couldn't use query strings in branch
> paths, but it would mean we could be more flexible in specifying policy
> there.

I just thought of an even simpler delimeter we could use here: a
space.  So it could be:

    [/some/branch only]
   push_location = sftp://...

(it's a little informal, but scans easily).

> >> If recurse=False were set for all automatic values, do you think
> >> ignore_parents would still be useful?
> >
> > It depends on whether anyone was relying on the current shadowing
> > behaviour or not.  Maybe it would be better to leave it out and see if
> > anyone asks for the feature.
> Okay.  So I apologise for turning your patch into a design discussion.
> Let's not let cascading block on config syntax discussion.  If you don't
> mind producing a version that retains the existing recurse
> functionality, I think I can approve that.  It's your choice whether to
> include ignore_parents.

Okay.  I'll put prepare a bundle for that.

> We can deal with syntax enhancement separately.

Okay.  I agree with the idea of putting the policy in the
set_user_option() routine and the config file is probably the best way
to go.  I also think storing the policy for a set of keys in the
section name will be the easiest for users to understand.


More information about the bazaar mailing list