Hello,

I'm running 'svn diff ...' from my application.
I want to make it work with filenames that contain '@'.
However, I'm finding, what appear to be, inconsistencies in its behaviour.

For testing I have a working copy with 2 files 'example.txt' & 'e...@mple.txt '. Both contain plain ASCII, are updated to HEAD & each have > 3 committed revisions. If I run the following script I see output as indicated alongside the commands.

---------->8---------->8---------->8----------
#!/bin/sh

F="${1:-...@mple.txt}"
echo 'XXXX' >> "$F"

echo "WITH NO -r:"              # Output:
svn diff "$F"                   # <DIFF>
svn diff "$F"@ # ERROR: '<name>@' is not under version control svn diff "$F"@HEAD # ERROR: '<name>@HEAD' is not under version control svn diff "$F"@BASE # ERROR: '<name>@BASE' is not under version control

echo ""; echo "WITH -rHEAD:"    #           v--- iff $1 contains '@'
svn diff -rHEAD "$F" # <DIFF> or ERROR: Syntax error parsing revision 'MPLE.TXT'
svn diff -rHEAD "$F"@           # <DIFF>
svn diff -rHEAD "$F"@HEAD       # <DIFF>
svn diff -rHEAD "$F"@BASE       # <DIFF>

echo ""; echo "WITH -rBASE:"
svn diff -rBASE "$F"            # <DIFF>
svn diff -rBASE "$F"@ # ERROR: '<name>@' is not under version control svn diff -rBASE "$F"@HEAD # ERROR: '<name>@HEAD' is not under version control svn diff -rBASE "$F"@BASE # ERROR: '<name>@BASE' is not under version control

echo ""; echo "WITH -rPREV:"    #           v--- iff $1 contains '@'
svn diff -rPREV "$F" # <DIFF> or ERROR: Syntax error parsing revision 'MPLE.TXT'
svn diff -rPREV "$F"@           # <DIFF>
svn diff -rPREV "$F"@HEAD       # <DIFF>
svn diff -rPREV "$F"@BASE       # <DIFF>

svn revert "$F"@
---------->8---------->8---------->8----------

Is this expected/desired? Should I create a new issue? (I couldn't find anything similar.) Is there a consistent (backwards & forwards compatible) syntax I can use?
Am I missing something (other than sufficient sleep)?

I'm using "svn, version 1.6.12 (r955767)" on Mac OS X.
[Svn 1.6.6 also produces identical results.
 Svn 1.4.6 is basically the same, but the final revert is 'Skipped'.]

Regards,

Chris



Reply via email to