I originally set up Regionerate’s Subversion repository at SourceForge, but after a while I realized that it might be overkill for a small project like Regionerate and that Assembla might be more suitable for the job. By that time, the project was already running around revision 300 on SourceForge.
Note: this post can be useful for migrating between other providers and not just between SourceForge and Assembla.
I set up the space for Regionerate at Assembla and wanted the Subversion repository to run under Assembla’s servers. I could have simply copied the files to Assembla’s Subversion server, but that would have caused the entire project history to disappear and basically start from revision 1.
After a bit of poking around some related blogs and toying with some tools I found the magic formula, which is quite simple.
Step 1: Snatch the Repository From SourceForge
Basically, we want the Subversion repository to be stored locally so that later on we can create a dump from it. In order to have the Subversion repository copied to the local computer, we need to create a backup of it. This can only be done with a small utility called rsync, which seems to be easily available for Unix users, but less accessible to us Windows users.
However, DeltaCopy seems to be bundled with a Windows build of rsync. DeltaCopy seems to be good to create scheduled backups. In this case, we just need a single backup.
Download DeltaCopy, I would recommend you download the raw package (the one without the installer) as its smaller and we just need one file (rsync.exe) from it.
Unpack the package to your desktop directory under a new directory called "DeltaCopy".
Create a new directory under "DeltaCopy" for the local backup, in this example, I’ll call it "Regionerate-Local-Backup", you can call it whatever you want.
Creating the Backup
Go to command prompt and go to the place you unpacked DeltaCopy. Type in:
rsync -av regionerate.svn.sourceforge.net::svn/regionerate/* Regionerate-Local-Backup
Replace "regionerate" with your project name, replace "Regionerate-Local-Backup" with the new directory you created under "DeltaCopy" to store the local backup. Hit enter and let her rip. This might take a while, depending on the size of your project and the amount of revisions under it.
After rsync finishes up, you are supposed to have a complete replica of your Subversion repository sitting locally.
Step 2: Dump It
Now you can simply perform a dump on it (assuming you have Subversion installed, if not, now is the time to do so) by running svnadmin.
svnadmin.exe dump Regionerate-Local-Backup -q
Don’t forget to replace "Regionerate-Local-Backup" to your temp directory name.
This can take a while as well. When svnadmin finishes dumping you should have a fat dump file in the directory you ran svnadmin in.
Step 3: Hooking Up to Assembla
Take your dump file and compress it to a zip, then go to your project’s Trac site on Assembla and log-in as admin. Under the admin menu you should select "Data Import/Export”.
Locate your compressed dump file and upload the file.
Once this is complete, you can start using Assembla’s Subversion on the same revision where you left off on SourceForge.
Hope you find this useful. (Thanks to Krzysztof Koźmic for reminding me to post this)