Let's say a large corporation is planning to replace it's existing version control system. Let's say it is only considering systems from major vendors that cost hundreds of thousands of dollars because they have "support."

Does version control in an enterprisey environment have to be expensive? Does your medium/large corporation use a FOSS VCS such as SVN/Git/Mercurial? What has the experience been?

I have to think it doesn't need to be expensive since there are so many free options, and there are probably companies that provide paid support for FOSS VCS if that is the main concern.

I don't intend this question to compare VCS or decide which is best, rather just understand experiences with VCS in a corporate IT environment.



In my (admittedly limited) experience, the non-FOSS solutions tend to be more "enterprise-y". That is,

  • They integrate with everything under the sun.
  • They have more built-in controls for complex business logic (permissions, access control, approval, etc).
  • They come with support contracts and reasonably responsive tech support lines.
  • They're well advertised to the non-technical people making VCS decisions at a high level in big companies.

These attributes make them attractive to large companies, especially to people who don't have to use them. The FOSS alternatives, as counters to the above:

  • Have plenty of third-party tools to integrate them with everything under the sun (by virtue of being more popular than proprietary alternatives), and tend to be easier to develop third-party tools for, being OS.
  • See previous- easier to to get external tools around a clean, simple, basic tool.
  • By virtue of being more popular, they have a wider community-based support.
  • They don't need said advertising.

Aside from that, my experience with common free VCS (mercurial/svn/etc) has them being faster, more reliable, and easier to use.

| improve this answer | |
  • 5
    +1 - I'm far happier with SVN that I ever was with SourceSafe. – Jon Hopkins Dec 7 '10 at 19:59
  • 5
    @Jon +1 - I'm far happier with Mercurial than I ever was with SVN. – Tim Post Dec 8 '10 at 13:22
  • 1
    @Tim - Currently informally assessing Mercurial ahead of a possible migration. – Jon Hopkins Dec 8 '10 at 13:23

I agree with @Fishtoaster in that FOSS version control have all of the features (or can be integrated with other FOSS software that provides the features) which even the largest "enterprise" needs.

Unfortunately, in my experience, many decisions in enterprises are not made by people who are technically knowledgable to make that decision. That is, the people who are authorised to make purchases in an enterprise are directly targetted by the sales department of other enterprises to buy their software. FOSS doesn't even get a look in because there's nobody selling to them.

In one place where I've worked, we used one of those "enterprise" version control solutions. It was slow (it literally took more than an hour to do a complete "check out" of the latest version of the code!) and buggy and everybody complained about it. Many developers would actually do the checkout (taking, as I said, more than an hour) then set up a local SVN or Mercurial repository on top of that checkout, do their coding against that repository and only check it back into the main repository when required.

We were lucky in that we were allowed to install whatever software we needed. But the fact that people subverted the "process" like this tells me that there was something seriously wrong with the process...

| improve this answer | |
  • 1
    That exactly what I have done, setup my own local SVN since the supplied VCS is so terrible. – jmmr Sep 28 '10 at 4:35

The main difference between FOSS and commercial software is that the former is based on pride while the latter is based on income.

Ask yourself: How happy are the people who wrote software XYZ?

If it's FOSS, they probably were very happy because otherwise, why would they bother to waste their time on it?

If it's commercial software, you can't really tell. Chances are that the people got paid to write something they don't really like.

So FOSS software gets more love. That doesn't necessarily mean it's better but if it's a successful FOSS project, you can be pretty sure it is better than anything you can buy ("Money can't buy happiness", remember?).

How can you tell that it's successful? Check the website. If the website is current and looks nice, it's successful enough to waste time on the website (FOSS developers are hard core; they don't want to waste time on anything that doesn't scratch an itch).

That leaves the most important point: Support. Companies don't buy software to legally use it but to get support in case something goes wrong (thinking along the lines: If 100 people can't work and I get a fix within a day, that's worth $100,000). Luckily, you can buy support for FOSS software (just look at the website for pointers or ask on the mailing list).

So yes, if you do an evaluation and the FOSS meets your needs, there is no reason to prefer commercial software anymore.

| improve this answer | |

I have personally seen SVN work successfully in a large enterprise, and have heard accounts of other success stories. I think one of the key things that scares enterprise about open source is lack of support. They feel like they are on a tightrope without a safety net. But often you can find companies that will provide support contracts for open source software. For SVN, there is CollabNet and others.

| improve this answer | |
  • 1
    But SVN really does not do branching very well, it basically sucks at it. So how can you possible use SVN on a project where you are, say, more than 10 people working on the same base. – Bjarke Freund-Hansen Dec 7 '10 at 18:22
  • @bjarkef: I does branching and merging with subversion from time to time. I think it's a legend, that SVN sucks at that. Sure, Git and Mercurial are based on a completely different system, that is based on branches. But it conflicts no less often than Subversion. So merging isn't the problem, only some people prefer the style the repos and branches are organized with DVCS. – Mnementh Dec 7 '10 at 19:20
  • 3
    Yeah. Really, from my standpoint SVN does branching phenomenally well. Probably because our source control before it was Visual Source Safe, which was abysmal at branching (and EVERYTHING ELSE). – John Christensen Dec 7 '10 at 19:34
  • @John - My problem was that going from a DVCS back to a CVCS was really difficult. My VCS progression has been RCS > VSS > Mercurial > SVN. The first two transitions were easy and made many things simpler, easier, and quicker. The last has been a nightmare - even using git-svn can't undo the inherent inflexibility of SVN's antiquated linear history. I look forward to our move to git, even though I would have preferred the simplicity of mercurial again. – Mark Booth Apr 27 '11 at 17:42

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