February 23, 2004

Subversion

Well, after being asked forty times things like 'Why SVN', I figured I would answer the question here, and refer people to this blog entry instead of saying the same thing over and over again.

MonoDevelop uses Subversion for version control. The main reason behind this choice was way back in the beginning, I have just setup a subversion repository for my work, and we needed somewhere to put the sources. So I created a new repository for MonoDevelop on my work's subversion server. The initial plan was to use this repository only temporarily, and move the sources to mono's cvs repo.

As the time came closer to doing this, we ended up decided to stick with SVN but still move to the mono-cvs box.

While initially we used SVN just because it was there, after having worked with it for a little while, I became somewhat attached to it. The fact that commits are atomic made my life far easier, no longer was it difficult to communicate about what commit might have caused the regression. 'Well, try this file at 1.21 and this other file at 1.5' was a thing of the past. Now you could say 'Works find in r400, seems like r401 is the problem commit'.

The ability to move file arounds may seem somewhat minor, and most likely is, but it made developing MD a lot easier. Less time spent administrating and dealing with file moving, and stuff like that, meant more time for hacking.

However, not everything is perfect. We have two main problems with SVN at the current moment. First and foremost, anonymous mirroring is something we have yet to get setup properly. I have heard that there is some perl module that can help. If anyone has any example perl scripts of using this module to replicating a repository between a parent repo and an anonymous child repo I would greatly appreciate it. Our other problem has been one of stability. Twice in the 2 months we have been using SVN the server combusted for no real reason and required some manual administration by someone with an account on the hosting computer. Now, we are using a somewhat dated version of SVN, at this point SVN has gone 1.0, so some of the stability issues are most likely gone.

All in all, I wouldnt trade our current setup for anything else (Except maybe a setup with SVN + AnonSVN mirroring ;) ). After years of working with CVS and working around/through its issues, it was pretty nice to work with revision control that I felt was easy and intuitive to deal with.

Posted by tberman at February 23, 2004 07:33 PM
Comments

I agree 100%!!!! It's finally time for Subversion! CVS just isn't adequate anymore these days.

Posted by: Zachary Burns at February 23, 2004 07:42 PM

Is http://svk.elixus.org/ what you want?

Posted by: Ka-Hing CHeung at February 25, 2004 07:02 AM