Alan Barrett wrote on Wed, Apr 24, 2013 at 09:44:11 +0200: > On Tue, 23 Apr 2013, Gabriela Gibson wrote: >>> Also, a minor design nit (sorry, no code review): The "---f1" >>> construct is something I've never seen before. >> >> That's why I picked it --- I checked extensively, and no-one uses a >> triple dash, so it does exactly what we hope it will: never interfere >> with anything that people might do. Also, I think it looks quite >> 'unixy' and it's easy to read. I expect fewer problems on windows. > > Speaking as somebody who might use this feature, I would much prefer a > more familiar notation like "%(f1)". To my eyes, "---f1" does not look > unixy or easy to read; familiar constructs are easier to read than > unfamiliar constructs. > > In addition to the familiarity issue, there's an issue with escapes: you > need a way of representing a literal "---f1" sequence that does not > expand to anything. With notation like "%(f1)" there's already a > widespread convention of using "%%" to represent a "%" character that > does not introduce an expnsion.
True. However, both cmd.exe and the Subversion config file parser use '%' as a metacharacter, and each of them escapes it differently, so the way to generate a single, literal '%' character would be: %%%% in ~/.subversion/config; %% in the value of --config-option=... on unix; ^%^% in the value of --config-option=... on windows; % not guaranteed to, but works in practice when not followed by either /[(]/ or /\w+[%]/. That's going to be challenging to document clearly. What about $(f1)? That's also familiar (makefile syntax) but might be a little saner to escape in various contexts. Daniel P.S. It appears our config files' %-interpolation feature doesn't kick in for --config-option's argument. I'm not sure whether that's a good thing or not.