We are using SVN and vendoring Rails. Everytime we update to a new version of rails it requires a bunch of deletes and adds. We do this for multiple projects. It is a pain. So I finally bit the bullet and decided to create a repository area for rails version. In our tree we put our rails versions off our trunk like the following:
Then we us svn:externals with the path in the vendor directory.
The trick (and the reason I'm writing this down) is that to keep svn from either complaining with a warning or giving an error was to move the original vendor/rails directory to another name 'vendor/dead_rails' then commit. That results in no conflicts or warnings.
I hope this saves someone some head scratching time.