I have a large Subversion repository with nearly 15 GB of data spread across ~500,000 files. Now I need to check out this repository to a remote host which would take days to complete.
The host I'm checking out to already has a complete copy of the data in the repository. But seeing as the files weren't checked out directly from the repository, they do not constitute a working copy (no ".svn" folders).
I'd like to avoid copying all this data across the network, especially when it already exists on the target host. Is there a trick I can use that will turn a preexisting directory into a working copy without replacing the local files with identical copies from the repository?
Best Answer
As of SVN 1.7 (but not before) you can do this easily with:
svn co --force http://path/to/repo
This will respect the local copy as existing, and you'll see the "E" for existing before each file name in the output:
E some/existing/file
If the file is different (new or modified) from the repository it will handle that gracefully too according to the book:
Also note that SVN 1.7 can lead to situations where this a more common problem (perhaps motivating the solution). I hit this problem when moving a sub directory to a new location on disk. In pre-1.7 that would have moved the
.svn
directory with it and it would have stood alone just fine. In 1.7 the directory became effectively unversioned. Butsvn co --force
saved the day.