Branko Čibej wrote on Fri, Aug 17, 2012 at 20:07:34 +0200: > On 17.08.2012 20:01, C. Michael Pilato wrote: > > On 08/17/2012 12:43 PM, Daniel Shahaf wrote: > >> Stefan Sperling wrote on Fri, Aug 17, 2012 at 18:24:03 +0200: > >>> On Fri, Aug 17, 2012 at 12:14:31PM -0400, C. Michael Pilato wrote: > >>>> 4. something else? > >>> 4. Marshall the version string before sending it across svn://, > >>> escaping unsupported characters somehow in a reversible way, > >>> and unescape them before passing them to hooks? > >>> I.e. use something like strnvis() but adapted to the > >>> restrictions of the svn:// protocol. > > Yeah, I forgot to add that I was thinking about this approach, too. I'm not > > familiar with strnvis(), but I assume it's similar to what we do with our > > checksum API _readable() variants (where 'A' is 0x41 and represented as as > > "41")? > > > >> 5. Require the version string and client name to match > >> /^[A-Za-z0-9-]+$/, and embed them directly as part of a capability > >> name (so: capabilities might be named client-version-tsvn-1dot7dot0) > > I'll give the honor of treating this suggestion as a serious one. And then > > the dishonor of a hearty -1. :-) > > Why? It's essentially the same as 4., just with a different and > higher-level marshalling.
For the record, I don't really object to the -1... the suggestion violates layering and hardcodes restriction where they don't quite belong. Its advantage is --- like stsp's suggestion --- not requiring a protocol version bump. And then there is ghudson's point, of course.