Варфоломеев Игорь wrote on Wed, Jul 10, 2013 at 05:22:49 +0400:
> > From: Daniel Shahaf [mailto:d...@daniel.shahaf.name]
> > Sent: Tuesday, July 09, 2013 9:30 PM
> >
> 
> > Can you please file an issue for this?
> 
> OK. I've just created the issue: 
> http://subversion.tigris.org/issues/show_bug.cgi?id=4392 
> Thank you!
> 
> 
> > (It's probably "bar@" that's the correct desination name in this case.)
> 
> Em... is it? 
> I thought, " svn cares only about the last at sign in the argument, and it is 
> not considered 
> illegal to omit a literal peg revision specifier after that at sign. "
> ( http://svnbook.red-bean.com/en/1.7/svn.advanced.pegrevs.html )
> means that only "@" in "svn copy foo bar@" is considered as an "at-sign for 
> revision".

The rule for parsing a peg revision from a string is: if '@' is present,
everything up to and not including the rightmost '@' is the path, and
everything to the left of the rightmost '@' is the peg; else, the peg is
unspecified.

As it happens, an empty string after the rightmost @ is valid.  That's
why appending an '@' to a filename escapes it (regardless of whether the
filename includes an '@' sign or not).

The question is whether we should not be parsing peg revisions in some
places.  The target arguments to 'add' seem like a clear-cut case.  The
'dest' argument of move seems like such a case too: assuming Q is
a versioned directory, what would be the meaning of, say,
'svn move alpha beta gamma Q@r42'?

Reply via email to