In what ways is Mercurial better/worse than TFS?

Jackson Pope picture Jackson Pope · Nov 5, 2010 · Viewed 7.7k times · Source

I've just joined a new company and at the moment we're using Microsoft SourceSafe as our repository. The settings aren't ideal and it's proving to be a big pain in the neck.

I've recently used Mercurial and thought it was amazing, so I'm advocating switching to that, but it looks like the company already has a Team Foundation Server licence and wants to use that instead.

Can anyone give me a list of points where one is better than the other? I've not used TFS and so I don't know what it's good/bad at.

Answer

VonC picture VonC · Nov 5, 2010

You cannot directly compare TFS and a DVCS.

If your company leans toward TFS, that may be because of the other features TFS comes with (data collection, reporting, and project tracking, all well integrated with Microsoft products)


On the pure Version-Control side, the Team Foundation Server 2010, with its Team Foundation Version Control (TFVC) 2010, introduces branches as first-class citizen.
See Team Foundation Server and branching characteristics, compared to others.

I still find their branching models more complex than a Mercurial or Git one.
See TFS2010 Branching into a subfolder of another branch vs. Guide to Branching Model in Mercurial (and this SO question which also details merges and branches with DVCS)

That being said, it remains a CVCS (Centralized VCS), meaning you get different working processes than with a DVCS: see Describe your workflow of using version control (VCS or DVCS).

The true killer feature of a DVCS remains its merge capability (simpler and faster than any CVCS). But introducing a DVCS in a corporate environment remains hard.