I was forced to use this tool when I wanted to move my old project repository into a new server (until then, its SVN repository was hosted on a free SVN hosting). The hosting provider forced me to pay for the svnadmin dump, so I searched for an alternative solution and
svnsync did the job.
In comparison to
svnsync is migrating subversion repository with no svnadmin access. The migration can be done when you have a working copy (checkout) of the source repository and a clean (
svnadmin create) version of the target repository. The repository synchronization is just reading all revisions one by one and copying them into the target repository, unchanged.
First, take a look at this article. Here you can find that a hook needs to be created in the target repository: hooks/pre-revprop-change (removing .tmpl and granting executable permissions for the script). What is not mentioned in the article above is that you should probably put
#!/bin/sh exit 0;as the hooks/pre-revprop-change script content, to avoid the error, as written in another article.
Now, initialize the synchronization (example call below):
svnsync init [target repository] [source repository] svnsync init file:///home/user/svn/test-repo svn://free-hosting/that-forced-me-to-pay/for-the-svn-dump
and copy all revisions, while being in the working copy of the source repository (example call below again):
svnsync --non-interactive sync [target repository] svnsync --non-interactive sync file:///home/user/svn/test-repo
Be patient and wait until it's finished. Afterwards, remove the useless hooks/pre-revprop-change script - and you're done!