A little history:
When we started out we used CVS, then quickly moved to Subversion once it became available and have stuck with it since. Now there are better alternatives to Subversion that we should strongly consider moving to, although it will be much more difficult to do so than moving from CVS to SVN was. The reason for this is that the two primary alternatives that I'd like us to consider are distributed version control systems (multiple repositories) whereas SVN and CVS were both centralized version control systems (only one repository).
Centralized versus Distributed Source Code Management:
With Mercurial and git, you keep an entire copy of the main repository on your local system. This is great, because you can make your own local commits and then push a set of commits out to the master repository once you feel it's ready. Branching is also much much easier to do on these systems than SVN or CVS. They're also much faster than SVN as many operations can be done locally instead of over the network. These are just a couple of the major advantages. One of the main disadvantages is that it will be more difficult for people to learn how to use these tools as opposed to SVN. We've been pretty successful at making SVN work for us so far, so it can be a little scary to make a change this big.
Mercurial versus git:
So if we move to either one of these tools, which is better for our purposes? I think this is the main topic that we'll need to address, as I'm really confident that it is in the best interests of this project to move on from SVN at this point. Here's a list of links that I found that compare the two tools. I think this should give us enough information to make an informed decision:
- Brief summary of major differences: http://www.wikivs.com/wiki/Git_vs_Mercurial
- Blog post: http://importantshock.wordpress.com/200 ... mercurial/
- Blog post: http://xentac.net/2012/01/19/the-real-d ... urial.html
- Google analysis comparing the tools: http://code.google.com/p/support/wiki/DVCSAnalysis
I intend to read through most of the content on those pages before stating my own opinion. I'm already leaning toward one tool over the other, but I still need to learn more about both.
Source code host:
It's also worth considering whether Sourceforge is still the place where we want to maintain our source. I'd say that we don't have much reason to move from there. It hasn't always been perfect, but we have a history there and it's served our needs reasonably well. Best of all, Sourceforge supports both git and Mercurial, so regardless of which of these two tools we pick (if indeed we do), we don't need to worry about support.