Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

There are a lot of choices available with respect to revision control (SVN, CVS, GitHub, etc.). What are the major options out there? What are the most popular ones right now (although I'm not sure if new revision control systems would be rolled out in the near future)?

Thanks in advance for the feedback, although I'm not sure if this is an appropriate place to ask.

share|improve this question

closed as not constructive by Thomas Owens Oct 18 '12 at 21:22

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

4  
Nitpick: GitHub's not a version control system, it's a social network for git. See also BitBucket, for Mercurial. –  Frank Shearar Oct 22 '10 at 7:34
    
possible duplicate of What are your favorite version control systems? –  user8 Oct 22 '10 at 10:12
    
@Mark Trapp, the questions are different. My favorite is not necessarily the most popular. –  systemovich Nov 11 '10 at 7:17
add comment

5 Answers

Amongst the distributed family currently Git and Mercurial are in the lead. Amongst the centralized family, SVN is still holding strong (very^2 strong). It is also a default choice in many corporate enviroments. Each of them has their own strengths and weaknesses, both technical and "office political".

Also, on StackOverflow there is a plethora of questions that deal with this subject (choosing a version control system). It really has been dealt to death, shot, resurrected, hanged, then resurrected again (it is currently on intensive care, and every once in a while a new queston pops up ;-), so it might be an interesting read to check out some of the more popular ones. Search under [git], [mercurial], [svn], [cvs] tags.

Here are some of the more popular items, dealing with choosing a version control system in general, as well as some of the mentioned one in particular.

What is the difference between all the different types of version control?
DVCS Choices - What's good for Windows?
Git and Mercurial - Compare and Contrast
Popularity of Git/Mercurial/Bazaar vs. which to recommend

Just these four should bore you to death :-)

share|improve this answer
    
When you need distributed version control I recommend Git. Most enterprises are equipped with SVN. Using git you can work even you aren't connected to your intranet. –  kadaj Oct 22 '10 at 9:28
    
@jase21, your last statement is true of any DVCS. –  Alan Pearce Oct 22 '10 at 9:51
    
Once again, the skeletal horse got dragged out and hit again. –  Paul Nathan Oct 22 '10 at 17:53
add comment

Git and Mercurial are the leading distributed VCSs, while Subversion leads among the traditional systems. This is a popular opinion and you can validate it by checking the ThoughtWorks Technology Radar from time to time.

Here's Google's white paper comparing Git and Mercurial side-by-side and explaining why Google chose Mercurial for their Google Code site.

share|improve this answer
add comment

Depends on the type of team - in small commercial projects VSS still holds sway. Larger projects will sometimes go for Clearcase, TFS, Starteam...

We use TFS, having switched from VSS. Personally, I'd prefer to use a distributed system set up like a centralized system so I could check in to my private repository at my leisure without my boss complaining (we're not allowed to do branching unless it's a major piece of work). Shelvesets are a good step in getting us halway there - but it's still only halfway there.

Edit: BTW if anyone's confused about what I meant there, I just mean the perfect system would have a central repository so that there's One True Version at any one time, but also with local branches so I can keep track of what I've been doing with large changes without committing them before they're ready.

share|improve this answer
    
I didn't know that about TFS. Thanks for letting us know –  Jon Jun 2 '11 at 12:10
add comment

In Brazil I would say we use most SVN and CVS.

At my company we are using AnkhSVN and Tortoise. The unique drawback is when people forget to lock their files, so they can change it and upload the newer version.

We share the same files with another European developers.

There is also VisualSVN and I like it too, it is really simple to use.

share|improve this answer
add comment

I have a feeling that it might be unpopular in certain circumstances, so I am wary of downvotes...

but one company I have worked for uses ClearCase as their RCS of choice. I have to say that it's actually quite good, and has good integration with the tools used (although the UIs for the tools it comes with are dire). It definitely seems a "big corporate" choice, though.

share|improve this answer
    
The one time I had any exposure to ClearCase, the manager apparently didn't trust it, so we used Perl scripts to check in and out. (The manager apparently also believed in making changes directly on the production system without keeping backups, so I don't trust his judgment.) It looked like it would be harder to learn, and more pervasive in controlling what you do. I never did get a taste of its good qualities. –  David Thornley Oct 22 '10 at 14:46
add comment

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