Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

In what ways is Mercurial better/worse than TFS? [closed]

Tags:

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.

like image 768
Jackson Pope Avatar asked Nov 05 '10 07:11

Jackson Pope


People also ask

Which one is better Git or TFS?

You should use Git for version control in your projects unless you have a specific need for centralized version control features in TFVC. In other words, if you have a very specific reason why you need to continue using TFVC, Microsoft would rather you didn't.

What is the advantage of Git over TFS?

It keeps the history clean and avoids all those unreadable merges. Compared to our time with TFS, we have much less merge conflicts now are on Git. The main reason is that Git does a three-way merge because it knows exactly where two branches started to diverge.

Is TFS good?

TFS is #1 ranked solution in top Quality Management Tools and #5 ranked solution in top Application Lifecycle Management Suites.

What is SVN and TFS?

TFS is an Application Life-cycle Management solution, SVN and Git are source control only. TFS does source control as well as issue tracking, document management, reporting, continuous integration, virtual labs for testing etc. TFS's Source Control & SVN are centralized source control, Git is distributed.


2 Answers

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.

like image 124
VonC Avatar answered Oct 09 '22 12:10

VonC


I recommend Joel on Software http://hginit.com for a list of very good reasons to switch to distributed version control.

like image 20
Marco Avatar answered Oct 09 '22 12:10

Marco