Monday Question: What Source Code Management System do you use, and why?

Posted by larrywright

Monday Questions is a recurring series on Approaching Normal. For more questions like this, please visit the archives.

I’ve been a CVS and SVN user for a number of years. Recently I’ve been watching all of the buzz around distributed SCMs, Git in particular. Git has been adopted by a number of projects lately, Rubinius being the one I noticed most recently. I took down my SVN repository when I moved web hosts, and haven’t put it back up yet. It seems like a good time to switch to Git (or something similar) if there’s a benefit.

So this Monday’s Question is: What Source Code Management System do you prefer, and why?

Subscribe to Approaching Normal today

Comments

Leave a response

  1. Rich CavanaughDecember 17, 2007 @ 12:32 PM

    I’ve been using Mercurial for some time now and I’m very pleased with it. I switched from Subversion largely due to merge pain and the development workflow being inflexible.

    I see the core functionality of Git and Mercurial as pretty similar. Architecturally, Mercurial strikes me as far cleaner and well thought out with respect to extensibility.

    I am honestly a little surprised the Ruby community seems to have latched on to Git the way they have. Mercurial being written in Python would be far more familiar territory (not to mention pleasant territory) if you have any problems or want to extend it in any way.

  2. Tim BarczDecember 17, 2007 @ 02:16 PM

    We use CVS and Subversion. In the past it’s been SourceSafe. We use CVS and Subversion since it is superior to SourceSafe. CVS and Subversion are also free and meet the needs we currently have.

    @Rich

    I think people are latching on to Git due to the blind adoption of whatever Linus Torvalds endorses and more so what he helps develops. In this case Git.

    I’m not saying his popularity and admiration isn’t warranted, however, with 15 developers in one corporate location we don’t need distributed source control.

  3. Jeff BDecember 17, 2007 @ 02:40 PM

    I’ve used monotone, arch and darcs and recently have settled on bazaar.

    I like darcs a lot due to it’s simplicity and still use it for a few of my projects.

    The reason I’m using bazaar is because it has plugins to talk to other VCS like Subversion (which I have used) and git (which I haven’t used). It is cross platform, which is important to me since I develop in both windows and linux. It is fast and distributed.

    I have a client who uses CVS, so I use that also.

    Personally, I prefer the distributed VCS for their flexibility and simplicity.

  4. Mike McKayDecember 17, 2007 @ 11:31 PM

    We are in the process of switching to git from svn. We deploy at a lot of sites without internet access, so it is great to be able to plug your laptop into the network and push code onto the server.

    In the process I found out about gitosis, which is a really nice way to setup a git repository, manage users, allow anonymous access, web browsing of source etc etc. Very very nicely done:

    scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

  5. Larry WrightDecember 18, 2007 @ 05:51 AM

    @Tim: As a former SourceSafe user…. I feel your pain. Even though CVS and SVN have their warts, they are much, much better than SourceSafe. When I heard that MS didn’t even use it to manage their own source code, it explained a lot. I’ve been a happy SVN user for a few years now, but the buzz around Git has me wondering if I should switch.

    @Jeff B: Have you compared bazaar to Git at all? I know they are both distributed, but beyond that I don’t know what the differences are.

    @Rich: About the only advantage I’ve heard of Git over Mercurial is that it is faster. Being written in C, that would make some sense.

    @Mike: Thanks for that link, that does look like it would simplify things.

  6. Jeff BDecember 18, 2007 @ 10:19 AM

    @Larry: I have only compared bazaar to git superficially. I tried git on a simple project and liked it’s ease of use, but it wasn’t cross platform (without cygwin). Some things I like about git: *) its extremely fast. *) help is formated as a man page for pretty much every command I wanted to look at *) it’s pretty darn simple *) the graphical tool lets me visualize my changes in a meaningful way

    Things I like about bazaar: *) it’s cross platform *) it’s simple *) it’s fast, but I’m not sure it’s as fast as git – but only barely in my experience. *) it supports multiple paradigms for vcs *) it has nice plugins for integrating with other vcs (Hg, SVN, Git – maybe others)

    Git also has the interesting feature of creating a non-shared repository. I found that curious.

    In general, I like Git, I just like bazaar better. A slightly biased comparison can be found at http://bazaar-vcs.org/BzrVsGit

  7. Luke FranclDecember 18, 2007 @ 11:58 AM

    I like Mercurial because it’s 33% more efficient than Git. `hg’ requires only two letters of typing, while `git’ requires three! ;-)

    Seriously though, Hg is very nice. It doesn’t have 10,000 commands like git and it’s written in Python so it’s easy to extend with hooks (which can also be written as shell scripts), and the documentation is very good.

    One good thing about the DVCS wars is that they each maintain enough metadata in their repository to switch to a different tool if necessary.