svn doesn't accept @ in URL's (must be encoded as %40)

Vincent Lefevre vincent at vinc17.org
Wed Oct 15 17:17:00 CDT 2008


On 2008-10-15 12:37:43 -0400, Karl Fogel wrote:
> Vincent Lefevre <vincent+svn at vinc17.org> writes:
> > I don't know if this is a bug or not, but svn doesn't accept the
> > @ character in URL's (at least until 1.5.3); this character must
> > be encoded as "%40". For instance:
> >
> > $ svn co svn+ssh://svn@localhost
> > svn: Try 'svn help' for more info
> > svn: Syntax error parsing revision 'localhost'
> >
> > I think that if what follows @ doesn't correspond to a revision,
> > it should be regarded as part of the URL.
> >
> > Otherwise the Subversion book should be updated to document this
> > point and correct the examples.
> 
> I think the idea was to leave us open to having new revision keywords in
> the future.  The way to escape the "@" is to put another "@" at the end,
> since only the last "@" is interpreted as a possible revision
> specifier:
> 
>    $ svn co svn+ssh://svn@localhost@
> 
> If the Subversion book is not clear on this point, it needs to be
> patched.

I propose the attached patch.

-- 
Vincent Lefèvre <vincent at vinc17.org> - Web: <http://www.vinc17.org/>
100% accessible validated (X)HTML - Blog: <http://www.vinc17.org/blog/>
Work: CR INRIA - computer arithmetic / Arenaire project (LIP, ENS-Lyon)
-------------- next part --------------
Index: src/en/book/ch06-server-configuration.xml
===================================================================
--- src/en/book/ch06-server-configuration.xml	(revision 3332)
+++ src/en/book/ch06-server-configuration.xml	(working copy)
@@ -1208,10 +1208,13 @@
         URL scheme, the Subversion client will actually be running the
         command <userinput>rsh host svnserve -t</userinput> behind the
         scenes.  If you include a username in the URL (e.g.,
-        <literal>svn+rsh://username@host/path</literal>), the client
+        <literal>svn+rsh://username@host/path@</literal>), the client
         will also include that in its command (<userinput>rsh
-        username at host svnserve -t</userinput>).  But you can define new
-        tunneling schemes to be much more clever than that:</para>
+        username at host svnserve -t</userinput>).  The second
+        <literal>@</literal> is necessary, otherwise
+        <literal>host/path</literal> would be interpreted as a peg
+        revision.  But you can define new tunneling schemes to be much
+        more clever than that:</para>
 
       <screen>
 [tunnels]


More information about the svnbook-dev mailing list