If a filename begins with "-", like "-foo", then SVN commands will think you're supplying a command-line option when you're really trying to give the name of the file.
Solution: refer to the file as ./-foo, as in
svn mv ./-foo +foo
## Umlauts
SVN fails in an ugly way when you try to check out a file with an umlaut in its name.
Solution: tell your shell that your "local" language is German, then SVN will do the right thing.
Add these two lines to your .bashrc:
LANG="de_DE.UTF-8"
export LANG
Now make sure your Terminal is running bash, by typing "bash", and SVN should stop giving you trouble about the umlauts.
## Other weird characters
It used to be fashionable to use Apple's special slanty-f character as an abbreviation for "folder" in names of folders. Some people also use Apple's option-2 to insert a "tm" character, as if the name of their patch were a trademarked term.
Any such characters make SVN fail in an ugly way.
Solution: Set your shell's "local" text encoding to en_US.UTF-8 and things should work. Add these two lines to your .bashrc:
LANG="en_US.UTF-8"
export LANG
Now make sure your Terminal is running bash, by typing "bash", and SVN should stop giving you trouble.