Switch to Subversion


To continually improve the visibility of RainbruRPG, we decided to switch from CVS to SVN. This article is the complete recipe, it may help other projects managers.

Please replace P/PR/PROJECT with your project's values. You also may need to open your firewall for rsync or shell connection operations.

Usefull documentation

You may need documentation on Subversion and CVS before you decide to switch. The documentation of adminrepo, a tool to manage subversion repository will be use.

This blog article was also use as reference.

Complete recipe

Subversion feature activation

First, you need to activate subversion repository from the sourceforge administration page. Follow the menus as project administrator : Project admin -> Feature settings -> Available Features

Produce a dump of the CVS repository

$ rsync -av rsync://PROJECT.cvs.sourceforge.net/cvsroot/PROJECT/* PROJECT-cvsbackup/

Note : If you have a error like this :

rsync: failed to connect to PROJECT.cvs.sourceforge.net: Connection timed out (110)
rsync error: error in socket IO (code 10) at clientserver.c(122) [Receiver=3.0.7]

You need to open or stop your firewall.

Create the svndump

$ cvs2svn --dumpfile=svndump PROJECT-cvsbackup > cvs2svn.log

Here I had some WARNING: Problem decoding log message: < message >. This page may help you finding the right encoding. I personnaly had to add the --encoding=latin_1 option to the command line to fix these warnings. So the needed command was

$ cvs2svn --dumpfile=svndump --encoding=latin_1 PROJECT-cvsbackup > cvs2svn.log

Making a hash sum of the dump

$ sha512sum svndump > svndump.sha

Move the result to sf.net

$ rsync -aiv svndump USER,PROJECT@web.sourceforge.net:.
$ rsync -aiv svndump.sha USER,PROJECT@web.sourceforge.net:.

Login and prepare

$ ssh -t USER,PROJECT@shell.sourceforge.net create
$ cd /home/project-web/PROJECT 
$ sha512sum -c svndump.sha
$ mv /home/project-web/PROJECT/svndump .

Make the job

$ adminrepo --checkout svn

The sf-help shell command should print your repository is locked.

$ rm -rf /svnroot/PROJECT/*
$ svnadmin create /svnroot/PROJECT/
$ svnadmin load /svnroot/PROJECT < svndump
$ adminrepo --save


You now have a Subversion repository containing old CVS one. You can test your brand-new repository :

  1. Create a work copy and work
  2. Commit your work
  3. Disable CVS feature from the sourceforge.net administration interface.

-- RainbruUser - 05 Aug 2011
Topic revision: r3 - 05 Aug 2011, RainbruUser


HotScripts.comGet RainbruRPG at SourceForge.net. Fast, secure and Free Open Source software downloadsThis site is powered by Foswiki
Active Search Results
Viesearch - Life powered search
Copyright by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Here are my personnal Google+ profile and the related Google+ page.
Ideas, requests, problems regarding RainbruRPG? Send feedback