On 08/17/2012 02:07 PM, Branko Čibej wrote:
> 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.

Because it is higher-level marshaling.  The ideal scenario keeps our
restrictions and conversion costs as close to the layers that actually
require them as possible.

I'm sitting at this spot right now:  Unless we want hooks parsing literal
capability strings such as "client-version-tsvn-1dot7dot0", we have to
change the server.  And if we have to change the server *at all* to make
this all work, then we should simultaneously change the protocol so as not
to require some still-obscure marshaling mechanism.

-- 
C. Michael Pilato <cmpil...@collab.net>
CollabNet   <>   www.collab.net   <>   Enterprise Cloud Development

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to