On 2016-10-18 17:01 (-0400), Johan Corveleyn <jcor...@gmail.com> wrote: 
> On Tue, Oct 18, 2016 at 1:35 PM, Daniel Shahaf <d...@daniel.shahaf.name> 
> wrote:
> > Branko Čibej wrote on Tue, Oct 18, 2016 at 13:08:37 +0200:
> >> It is. I don't think there's any way we can /not/ make it backwards
> >> incompatible, given the current implementation. Which is why I think we
> >> should just admit that current behaviour is a bug.
> >>
> >> Either that, or introduce a new property that behaves sensibly.
> >
> > Some IRC discussion lead us to svn_prop_name_is_valid(), which requires
> > that the first character of a property name be alphabetic or colon or
> > underscore.
> >
> > Brane therefore proposes «*.txt == propname=propval» for the "override"
> > syntax, and keep «*.txt = propname=propval» for the "overlay" syntax.
> >
> > This change would be backwards compatible: this syntax does not have
> > a meaning currently.  1.9 clients just ignore it.
> >
> > We can bikeshed about finding a syntax that looks less like
> > a C comparison, of course.  We can't use =: because property names can
> > start with a colon, we can't use := because filename patterns can end
> > with a colon, but any other option is open.
> 
> Great idea. And I like that color of bikeshed :-).
> 
> Another option would be to introduce a "subtract" syntax, with =- or
> =!, but I don't know if that would be easier / better for the user (in
> that case, he'd have to specify the *.txt pattern two times, to
> subtract svn:eol-style with =!, and add svn:mime-type with =).

All these variants seem to suffer the same problem, old clients will set the 
properties after the first semicolon:

*.txt == prop1 ; prop2

There is a way to prevent that, filenames do not contain slashes:

*.txt /= prop1 ; prop2

This one passed my tests with an "old" client.

- Martin

Reply via email to