If I have an svn working copy and I'd like to update the working copy with a new version of those files, I simply copy the new files on top of the old files and there's no problem. Svn recognizes the differences between the files. (I'm using svn 1.6)
However, when the files I'm copying contains a directory structure, there's a problem. For example, if the original directories in the working copy contain a top-level-directory/second-level, and I copy the new directory structure on top of it with top-level-directory/second-level, there's a problem. Copying top-level-directory onto the existing one destroys the .svn folder that was contained under top-level-directory in the working copy. Now svn complains.
Is there a way to get this to work so that I can easily update files, either using the Linux 'cp' command, otherwise dragging files onto the existing locations in Eclipse. Otherwise I'd have to write some custom script to only copy every file, creating parent directories as needed. This seems like a pain, so I'm hoping there's an easier way. (I'd be surprised if I were the only one who has the need for such usage.)
You can use the -u option of cp :
-u, --update copy only when the SOURCE file is newer than the destination file or when the destination file is missing
So, in your case a cp -ur /new/repository/* /old/repository/
will only override existing files, and not erase .svn directories.
If you want, you can also use rsync.
The major advantage of rsync is to copy only the minimum diff between updated files to avoid network overhead, but in a local copy, you won't gain much in performance (the cost of the diff will balance the gain during copy).