Thursday, January 04, 2007

Moving from cvs to svn step by step

Step 1: Install your favorite Linux server. I used Fedora 6. Fedora 6 comes with svn server 1.4 . Name is F6

Step 2: Download cvs2svn  from http://cvs2svn.tigris.org

Step 3 : As root, run 'make install'.

Step 4: Create a regular user on your server. I created svnscm

Step 5 : Login as svnscm , Copy the CVS repository from the cvs server to F6. I used "scp -r " 

Step 6 : As svnscm cvs2svn --dumpfile DUMPFILE CVSREPOS . svs2svn performs 9 pass process on your cvsrepository (CVSREPOS). After successful execution it creates a DUMPFILE. I used cvs2svn --dumpfile cvsdump.dmp myproject.

Step 7 : Create svn repository  svnadmin create /usr/local/svn/repos.

I used "svnadmin create /source/repository/myfavoriteproject"

Step 8 : Load the dump file into your new svn repository. svnadmin load REPOS_PATH

I used svnadmin load /source/repository/myfavoriteproject < cvsdump.dmp 

Step 9 : Verify the svn repository created. I created a folder /home/svnscm/workspace. 

"svn checkout  file:///source/repository/myfavoriteproject/trunk [Note : trunk in the url ]

Accessing svn from a remote machine

Step 10 : Verify port 3690 is not blocked

Step 11 : In your svn client use this url svn+ssh:///source/repository/myfavoriteproject/trunk. [ssh is by default enabled in F6]. I used  TortoiseSVN 1.4.1 for windows

Step 12 : Add pre-commit hooks and post commit hooks That's it .

Its party time enjoy your svn

Additional Notes

  • svn creates trunk, branch, and tags as separate folders. If u checkout myfavoriteproject it will download tons of files.
  • When you add more developers to your project access control can be handled at file permissions level. Further fine tuning can be done in svnserv.conf. This file is available in each repository

Ref Book on Subversion

No comments: