Re-awakening my previous thread about the auto-properties. I get really confused by where to use ;; and ; as a separator.
I currently have this in the auto-props on the repo: *.txt = svn:mime-type=text/plain;;charset=iso-8859-1;svn:eol-style=LF And then if I add a text file: prompt> touch foo.txt; svn add foo.txt; svn pg svn:mime-type foo.txt A foo.txt text/plain;charset=iso-8859-1 So the property itself is with just one semicolon in there despite the auto-prop having ;; Is this the correct behavior? While if I to the same thing manually, i.e. prompt> touch foo; svn add foo; svn propset svn:mime-type "text/plain;;charset=iso-8859-1" foo; svn pg svn:mime-type foo A foo property 'svn:mime-type' set on 'foo' text/plain;;charset=iso-8859-1 That is, I'm passing in the exact string that I have in my auto-props into propset for a file without .txt-suffix so I don't get the auto-properties. But as you see in the resulting property that I now have has double semi-colons. My guess is that the former is the intended behavior and I should not be passing in the ";;" into the manual command, but I'm getting really confused here. I seems very error-prone that manual propset can't use the strings from the config file or auto-props wihtout getting a different result. Which version is the correct one, or do both actually do the job? BR Chris -------------------------------------------- On Wed, 1/10/18, Daniel Shahaf <d...@daniel.shahaf.name> wrote: Subject: Re: auto-props syntax in file vs. property To: "Chris" <devnullacco...@yahoo.se>, users@subversion.apache.org Date: Wednesday, January 10, 2018, 8:51 PM Chris wrote on Wed, 10 Jan 2018 08:26 +0000: > I think the fix to svn_apply_autoprops.py should be something like below > (/subversion/trunk/contrib/client-side/svn_apply_autoprops.py) > If anyone with commit rights wants to fix it on the repo, feel free to > use the below, or improve it as necessary (my python knowledge is non- > existing) > > Index: svn_apply_autoprops.py > =================================================================== > --- svn_apply_autoprops.py (revision 103617) > +++ svn_apply_autoprops.py (revision 103618) > @@ -101,7 +101,11 @@ > # leading and trailing whitespce from the propery names and > # values. > props_list = [] > - for prop in props.split(';'): > + # Since ;; is a separator within one property, we need to do > + # regex and use both negative lookahead and lookbehind to avoid > + # ever matching a more than one semicolon in the split > + semicolonpattern = re.compile("(?<!;);(?!;)") > + for prop in re.split(semicolonpattern, props): That's clever, but it will misparse sequences of three or more semicolons in a row, such as *.foo = key=val;;with;;semicolons;;;anotherkey=anotherval Daniel