Problem
You have repository on a host server and you need to relocate it to another host server.
Solution
Dump the repository and load it into the new repoitory.
Suppose your original repository is hosted on a Windows PC at d:/repositories/myrepos and your project has outgrown this temporary solution and you must now move it to a Unix system at /var/repositories/myrepos.
On the PC
svnadmin dump c:/respositories/myrepos > myrepos.dump
Transfer the dump file myrepos.dump onto the Unix host, let us suppose to the Subversion administrator's home directory. Now log in as the Subversion administrator and create a new empty repository and load the dump file.
cd ~ svnadmin create /var/repositories/myrepos svnadmin load /var/repositories/myrepos < myrepos.dump
Do not forget that when setting up the new repository you may need to also set up your repository's configuration (depending on how you serve your repository).
Your users can now switch any exisiting working copies to the new location. This must be done using the --relocate option on thesvn switch command.
If your users previously accessed your repository at svn://subverionpc/myrepos and access the new location assvn://subversionunix/myrepos then they would use the following command in the root of each working copy.
svn switch --relocate svn://subversionpc/myrepos svn://subversionunix/myrepo
Discussion
The svnadmin dump command writes the content of a repository out to the STDOUT stream (which, in the command above, we redirect to the myrepos.dump file) in a platform independent format.
The svnadmin load command reads a stream as formatted by the svnadmin dump command from the STDIN stream (which, in the command above, we redirect from the myrepos.dump file) and loads it into an existing repository.
The svnadmin command works with direct access to the repository's file system, so here we are using the file myrepos.dump to store the stream output from svnadmin dump and transfer it to the Unix machine where we use the svnadmin load command to load it into the new repository.
Repositories are identified internally by a UUID (Universally Unique IDentifier). When you create a new repository with svnadmin create the repository will have a new UUID. If the repository maintained this UUID after you loaded the content from the original repository your users would be unable to reuse their existing working copies using the svn switch --relocate command. Attempting to switch a working copy to a repository with a different UUID to the repository from which the working copy was created will be prevented by the Subversion client. To avoid this problem, when svnadmin load is used on a new, empty repository the UUID of the original repository (written into the dump file by the svnadmin dump command) it written into the new repository.
For further information about using Subversion, try the complete Subversion training course "Subversion Guru".