Manipulating files with @ sign in a subversion repository

Apparently it was a while ago since I had troubles with infrastructure :), but this time it took too long to leave it unnoticed. Quite some time ago I have created several files in the subversion repository with the ‘|’ character in them, which gave problems checking them out on a Windows… ehm… box (if you can call Surface a box :)).

Renaming the files with ‘|’ was not really a problem, just do the following on a Unix (MacOSX including) system (file names shortened for brevity):

# svn mv Me\|Other.txt Me_Other.txt

What did went wrong is one file with the ‘@’ character in the name. Apparently subversion interprets that character in a special way, therefore it needs special handling. Escaping, duplicating the character did not help (file names shortened for brevity):

# svn mv Me@Google.txt Me_Google.txt
svn: E145000: Path '/Users/oleksii/Documents/Me' does not exist

Great! What Now? Apparently the trick is rather simple: put the @ sign at the end of the file name! Voila!

# svn mv Interview@Company.txt@ Interview_Company.txt
A    Interview_Company.txt
D    Interview@Company.txt

Phew… Could have saved me about 15 mins. I hope it helps somebody else!