So you busted you butt all weekend, and want to make sure you can backup all the work, or import it (including the revision history) into your own subversion respository? We don’t have shell access to the subversion server, and an svnsync won’t work because we can’t access the root level of the repository. What to do? Well, here’s what I did.
Note: I’m working from a Mac (nuala), and didn’t want to jump through the hoops needed to install the dependencies locally, so I installed the needed tool and ran the export from an Ubuntu linux server (goldie) I have access to.
<pre>jlperry@nuala:~$ ssh goldie</pre>
First, I installed the SVN::Core perl bindings.
<pre>jlperry@goldie:~$ sudo apt-get install libsvn-core-perl</pre>
Then, I downloaded SVM a tool for mirroring Subversion repositories.
<pre>
jlperry@goldie:~$ wget http://search.cpan.org/CPAN/authors/id/C/CL/CLKAO/SVN-Mirror-0.73.tar.gz
jlperry@goldie:~$ tar -zxvf SVN-Mirror-0.73.tar.gz
jlperry@goldie:~$ cd SVN-Mirror-0.73/
</pre>
Run the make file, saying “yes” to the questions about autoconfig and dependencies, and “yes” to “Should we try to install the required module(s) anyway?”. Just press ENTER to stuff about UUID state storage and default umask
<pre>
jlperry@goldie:~/SVN-Mirror-0.73$ perl Makefile.PL
jlperry@goldie:~/SVN-Mirror-0.73$ sudo make
</pre>
And install it:
<pre>
jlperry@goldie:~/SVN-Mirror-0.73$ sudo make install
jlperry@goldie:~$ cd ~
</pre>
Now, lets get ready to do the export.
You need to create an “~/svn” folder, I think you can change the path svm wants to use, but whatver, this worked for me.
<pre>jlperry@goldie:~$ mkdir svn</pre>
Cache our authentication and acceptance of the self-signed https cert from the server before we can sync:
<pre>jlperry@goldie:~$ svn info https://svn.railsrumble.com/paintitred</pre>
<pre>
jlperry@goldie:~$ svm init . https://svn.railsrumble.com/paintitred
jlperry@goldie:~$ svm sync .
jlperry@goldie:~$ svnadmin dump svn/svm > rumble_dump
</pre>
Wow, that was easy.
<pre>
jlperry@goldie:~$ logout
jlperry@nuala:~$ scp goldie:~/rumble_dump .
</pre>
Now, make sure you can import your dump
<pre>
jlperry@nuala:~$ mkdir tmp
jlperry@nuala:~$ svnadmin create tmp/rumble
jlperry@nuala:~$ svnadmin load tmp/rumble/ < rumble_dump
</pre>
All the above steps worked for me, your mileage may vary. I just wanted to share these tips with anyone else who might be looking to backup their work from this weekend. It was a blast. There’s a lot of good projects in there, and I’m proud of our team for finishing our entire app by the deadline.







it seems this command:
$ svm init . https://svn.railsrumble.com/projectname
generates this error:
Unable to read https://svn.railsrumble.com, relay support disabled
however, it doesn’t seem to cause any real problem. i ran svm init a second time and it did not spit out the error. svm sync worked fine.
Hey, I am getting a propfind failed when I try the svm init command. Did you get all this working?
zarqman: Yes, I probably should have mention that warning message in my notes, I got it as well.
Josh: Some others have had trouble, I think the specific version of svm installed is significant
I had to fix my cpan setup, but I was able to get svm working finally. I just pulled the SVN::Mirror over using the cpan console. Thanks for this great tip man – we can finally get http://tastyplanner.com on the dev track again :D.