Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm using Windows and am comfortable with SVN (well, TortoiseSVN) because it's dead simple. It works for me. However, because it's been working so well, I haven't any reason to try anything else.

Should I bother learning a different system, for example, Mercurial or Git?

share|improve this question
up vote 3 down vote accepted

Messing around with version control is often not ones highest priority. Whether learning Mercurial or Git is a good investment of your time will have much to do with your particular circumstances.

However, there are real advantages of distributed version control. Most compelling to me is that it separates the act of committing code (and thus having it always available for all time) and the act of inflicting that code on the rest of the team. If I'm using Git, I'll do a local commit at least every hour, and push to the central repository several times a day. If I'm using SVN, I only commit when my code is appropriate for public consumption, and thus may work for five or six hours without any commits.

So read a little more about it, and see if the benefits are compelling to you. If it seems to be solving problems that you don't yet have, then it isn't yet time for you to mess with it. But if you find yourself intrigued, go for it.

For Git, the best resource is

For Mercurial, a great read to think right is Joel's tutorial:

share|improve this answer
The tutorial makes a compelling argument, and is especially useful in my case because it compares Mercurial to SVN. I will likely try it out in my next project. – Corey Jan 9 '11 at 23:03
Everyone should learn to use a DVCS, at least, because it's so handy to have it in your Box O' Tools. Since you already know SVN, I would try Distributed next. – Warren P Jun 17 '11 at 2:21

It's good to know both one centralized and one distributed source control system. This way you will understand both approaches. Learn subversion and mercurial or git and you should be fine. If you want to use it as version control system (rather than only source control), e.g. for binary files, you can take a look at perforce, which uses slightly different approach (it requires constant access to the central repo).

share|improve this answer
FYI: Windows + Git = Pain and crying oneself to sleep – TheLQ Jan 1 '11 at 5:38
but: Git + Linux = FTW – dan_waterworth Jan 1 '11 at 7:31
@TheLQ isn't there TortoiseGit to get around the lowlevel mess? Because a mess it is indeed.. It's a shame there's no such thing as SvnKit for git (at least not that I know of): a single lib that does it all. – stijn Jan 1 '11 at 10:07
@TheLQ: I have learned mercurial ;-) I am python guy :-) – gruszczy Jan 1 '11 at 12:18
Windows + Git works absolutely fine for me. – rwallace Nov 14 '11 at 3:40

Yes - if only so it doesn't throw you too much when you come across them. Git is becoming popular, and you will need to know the command line. Although - if you get to know the SVN command line reasonably, then the transition to other Source control systems will be much easier.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.