CVS Is Outta There!

I pulled the big red lever on CVS this morning and converted over to Subversion at work.  It's gone pretty smoothly though one of the engineers is complaining that Eclipse is now freezing up a lot.  Not sure if that's related to the Subversion change of if something else is going on but it's something I'll have to investigate some more.

It's sad but I get a buzz out of being able to move things around in the repository right from within Eclipse and knowing that the history is being preserved.

The only unexpected complexity was that our cruisecontrol server suddenly stopped sending emails - the usernames for Subversion are prefixed with the domain whereas for CVS they weren't so the mapping of usernames to email addresses in the config file was wrong.  Once it clicked as to what the cause of the problem was it was easily fixed and it should now be running smoothly.  It definitely checks for changes much, much, much faster under subversion than it did under CVS which is a huge benefit.  That alone should knock 5 minutes off our build times and make the whole process more responsive, not to mention the fact that engineers won't have to wait for it to release locks anymore.

So far I'm pretty impressed by how smoothly it's gone.  I'm sure there will be problems that we come across but hopefully they won't be too major.  I'm pretty confident that this will be a huge benefit for us in the long run.

8 Responses to “CVS Is Outta There!”

  1. Steve Temple Says:

    As someone who is in the process of doing the same thing, I have a couple of questions:

    Is your server on win32,Linux or something else?
    What conversions script did you use?

    Cheers,

    Steve


  2. Iain Robertson Says:

    As another data point for Steve, when I did such a conversion I used cvs2svn. The CVS server was originally on NT; the SVN server (for reasons involving availability of hardware and a (wrongly?) percieved security preference) on Solaris.

    May I recommend not using Solaris for SVN, if only because the packages to do the work are a nuisance to install, and don’t (as of Solaris 9 at least) come with the base OS. Also, it doesn’t pay to have the SVN data directory on any kind of share (be it SMB, NFS, or otherwise); SVN relies on filesystem locks, which aren’t “implemented right” in shared filesystems. Using iSCSI or direct attached storage seems to work okay though.


  3. Adrian Sutton Says:

    I emailed the following to Steve directly and forgot to post it here:
    Hi Steve,
    Our server runs on Windows Server 2003 and we’re accessing it through Apache 2. Setting up subversion on windows appears to be a lot easier because it comes with double click installers so it’s pretty straight forward. Linux is probably easy if you have some sysadmin experience - I’m just a software engineer who is forced to dabble with system administration.

    I used cvs2svn http://cvs2svn.tigris.org/ and it was all pretty straight forward. I actually ran the conversion on my OS X laptop since it had python installed and then copied the result over to the Windows server (you can only do this if you use fsfs instead of the default berkley DB format).

    The best thing I did was set up a virtual machine using Virtual PC first and go through the process of setting everything up there first, document the configuration options and steps I took and then actually did it all on the server.

    Best of luck with your conversion.

    Adrian.


  4. Steve Temple Says:

    Thanks for the response,

    I only asked as my CVS repository resides on a Windows Server 2000 box, I’ve copied it locally to Windows Server 2003. I then tried to convert using cvs2svn and it’s failed everytime. I’ve considered running the conversion on my Linux box, but I’m unsure how well it will work. I suppose I should just give it a whirl! We’ll be putting subversion on Windows Server 2000 so hopefully I’ll avoid the network issues.


  5. Adrian Sutton Says:

    That’s pretty close to our setup except we were just using a single Windows 2003 server for CVS and the same server for SVN. I just copied the CVS repository over to my OS X laptop, converted it with cvs2svn and then copied the resulting repository back to the Windows server. You can only do this however if you use fsfs and not berkley DB. If you do want to use berkley DB you need to tell SVN to create a dump instead of an actual repository (or create the repository then create a dump from that) and import the dump on Windows.


  6. Steve Temple Says:

    Sounds hopeful,
    Do you reckon the same would be the case with Linux if I’m running ext2fs?


  7. Adrian Sutton Says:

    Yep, should work without a problem. Just make sure you check line endings for files before going live but as far as I know it shouldn’t be a problem.


  8. Steve Temple Says:

    Thanks


Leave a Reply

Alternatively, subscribe to the Atom feed.