On Mon, Jan 30, 2012 at 11:05 AM, Julian Foad
<julianf...@btopenworld.com> wrote:
> Branko Čibej wrote:
>
>> On 27.01.2012 12:53, Julian Foad wrote:
>>>  Branko Čibej wrote:
>>>>  On 27.01.2012 11:50, Julian Foad wrote:
>>>>>   We need to see how we'd implement a reasonable system of svn:ignores
>>>>>  and auto-props using the proposed inheritable properties system.  The
>>>>> ability to see the inherited value and then merge in a child-defined
>>>>>  value [...] is essential if we're going to implement these features
>>>>> using properties with semantics like the existing 'svn:ignores'.  [...]
>>>>
>>>>  No, you need to give the inherited properties that carry server-dictated
>>>>  configuration a different name, don't you think? Whether the merging is
>>>>  then done server-side or client-side is almost a bikeshed.
>>>
>>>  I'm not quite sure what you mean.  Could you give a specific example?
>>>
>>> [...] One way to achieve server-dictated configuration of ignores would
>>> be to make the server control the 'global-ignores' [config setting].
>>> But for the purposes of exploring inheritable properties, let's ignore the
>>> 'global-ignores' config setting and assume that we're going to
>>> control the ignores through (inherited) properties alone.  [...]
>>
>> Heh, but I fail to see a semantic difference between the two cases. :)
>
> An
> "inherited properties" design implies client-side setting of the
> inherited properties, whereas the design for server-dictated
> configuration implies that setting will be done server-side by an
> administrator.  For either approach, I would ask: how would you go about 
> setting up a useful
> hierarchy of ignore patterns?  In the server-side case, you can say we'll 
> just start with a simple config file format
>  and defer that problem; somebody can design a more powerful config system 
> for the administrator to use, later.  So I
> asked specifically about how one would conveniently define
> ignore-patterns hierarchically in a generally useful "inherited
> properties" design.
>
>> Since the server-dictated global-ignores would only apply to a certain
>> subtree in the repository, it would /already/ behave as if it were an
>> inherited svn:ignore property, and what's more, would be implicitly
>> merged by existing client implementation with any svn:ignore properties
>> that subtree happens to contain.
>
> No.  The way I read the proposed 'server-dictated config' scheme, it didn't 
> include a way to configure different values for 'global-ignores' to apply to 
> different
> directories inside the WC, only for transmitting a single value of
> 'global-ignores' which could depend on the root directory of the WC.

That is incorrect, the server dictated configuration proposal
(http://wiki.apache.org/subversion/ServerDictatedConfiguration)
supports different configuration values by path:

[[[
Behavioral specification

The high-level behavior for server-dictated configuration is
relatively simple: the repository maintains a list of configuration
parameters and values which, as necessary, the server provides to the
client. The client, then, behaves in accordance with the
server-dictated configuration.

Subversion could recognize multiple levels of possible hierarchy in
the server-side configuration: server-wide, per repository, or per
repository-path. The current plan is to allow configuration at the
most granular level, per repository-path.
]]]

Paul

> But anyway, my point was to explore how useful the inherited properties idea 
> would be in general, using ignore patterns as an example.  If you're 
> suggesting that this example of an inherited 'global-ignores' value being 
> augmented by a non-inheritable 'svn:ignore' value should serve as a general 
> model for how overriding should be done in an inherited properties system, 
> that's a valid suggestion but it doesn't look like an elegant one.
>
> - Julian

Reply via email to