I tried to use TortoiseSVN to merge a particular revision of a particular file from one branch into another. I received the message "cannot replace a directory from within". I tried the same thing using the SVN command line tools, same result. The problem was that I was using a command like this:
svn merge -r3023:3055 svn://myrepository/trunk/blah/blah/Blah.java c:\myworkingcopy
The solution was to specify the target filename directly:
svn merge -r3023:3055 svn://myrepository/trunk/blah/blah/Blah.java c:\myworkingcopy\blah\blah\Blah.java
You can do this from within TortoiseSVN by invoking the 'merge' command by right-clicking directly on the file in question instead of at the root of the working copy.