You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Tim Van Holder <ti...@anubex.com> on 2018/10/29 16:08:28 UTC

Issue with 'svn diff' when file name starts with @

(I tried searching the issue tracker but it was extremely unresponsive; apologies if this is already in there (which seems likely))

Initially encountered on Windows (most recent TortoiseSVN).
Reproduced on Linux (Debian testing, subversion-1.10.3-1).

The help for svn diff suggests that it supports peg revisions (TARGET[@REV]).
However, this does not seem to be the case.

In fact, while most (all?) other svn commands will treat 'foo' and 'foo@' as equivalent file names, svn diff does not; 'svn diff foo@' (when only 'foo' exists) will result in E155010 (the node was not found).
(This seems part of SVN-3231.)

In addition, there is a significant bug in handling of file names starting with @; a diff for them can only be acquired by running 'svn diff' in their directory and using './<filename>'.
(I don't immediately see a ticket for this case.)

Reproduction case: create a new repo containing 2 files: foo/@bar and foo/xy@zzy
Check out the repository (messages below will assume it is in /wc):

$ cd /wc
$ svn diff foo/@bar
svn: E155010: The node '/wc/foo@bar' was not found.
$ svn diff foo/@bar@
svn: E155010: The node '/wc/foo@bar@' was not found.
$ svn diff foo/xy@zzy
$ svn diff foo/xy@zzy@
svn: E155010: The node '/wc/foo/xy@zzy@' was not found.
$ cd foo
$ svn diff @bar
svn: E125001: '@bar' is just a peg revision. Maybe try '@bar@' instead?
$ svn diff @bar@
svn: E155010: The node '/wc/foo/@bar' was not found.
$ svn diff ./@bar
$ svn diff ./@bar@
svn: E155010: The node '/wc/foo/@bar@' was not found.

So:

  *   the normal 'append-@-to-avoid-peg-revision' syntax does not work (but in some cases the error message suggests using it)
  *   files containing @ anywhere but at the start work fine
  *   files with @ at the start seem to lose the directory separator in front of it, breaking diff operation
     *   exception: using ./ as path while in the file's directory (so luckily this means I have a workaround)

Re: Issue with 'svn diff' when file name starts with @

Posted by Branko Čibej <br...@apache.org>.
On 29.10.2018 17:08, Tim Van Holder wrote:
> (I tried searching the issue tracker but it was extremely unresponsive; apologies if this is already in there (which seems likely))
>
> Initially encountered on Windows (most recent TortoiseSVN).
> Reproduced on Linux (Debian testing, subversion-1.10.3-1).
>
> The help for svn diff suggests that it supports peg revisions (TARGET[@REV]).
> However, this does not seem to be the case.
>
> In fact, while most (all?) other svn commands will treat 'foo' and 'foo@' as equivalent file names, svn diff does not; 'svn diff foo@' (when only 'foo' exists) will result in E155010 (the node was not found).
> (This seems part of SVN-3231.)
>
> In addition, there is a significant bug in handling of file names starting with @; a diff for them can only be acquired by running 'svn diff' in their directory and using './<filename>'.
> (I don't immediately see a ticket for this case.)
>
> Reproduction case: create a new repo containing 2 files: foo/@bar and foo/xy@zzy
> Check out the repository (messages below will assume it is in /wc):
>
> $ cd /wc
> $ svn diff foo/@bar
> svn: E155010: The node '/wc/foo@bar' was not found.
> $ svn diff foo/@bar@
> svn: E155010: The node '/wc/foo@bar@' was not found.
> $ svn diff foo/xy@zzy
> $ svn diff foo/xy@zzy@
> svn: E155010: The node '/wc/foo/xy@zzy@' was not found.
> $ cd foo
> $ svn diff @bar
> svn: E125001: '@bar' is just a peg revision. Maybe try '@bar@' instead?
> $ svn diff @bar@
> svn: E155010: The node '/wc/foo/@bar' was not found.
> $ svn diff ./@bar
> $ svn diff ./@bar@
> svn: E155010: The node '/wc/foo/@bar@' was not found.
>
> So:
>
>   *   the normal 'append-@-to-avoid-peg-revision' syntax does not work (but in some cases the error message suggests using it)
>   *   files containing @ anywhere but at the start work fine
>   *   files with @ at the start seem to lose the directory separator in front of it, breaking diff operation
>      *   exception: using ./ as path while in the file's directory (so luckily this means I have a workaround)

Hi,

You seem to be talking about
https://issues.apache.org/jira/browse/SVN-4530 which I've updated
recently and started working on. You probably didn't receive an update
from Jira about that because the issue was imported from our old tracker
at Tigris. Do please add yourself to the watch list, if you're interested.

-- Brane

P.S: As per [https://subversion.apache.org/reporting-issues.html]
discussion belongs on this list, not in Jira.