17

With Phil Haack and others recently tweeting about CodePlex's move to support Mercurial as a DVCS, I thought it might be worth a look.

As someone who currently uses SVN for personal projects and TFS at The Office, how does Mercurial compare in terms of usability, features and what are some of the better Mercurial hosting services available?

Phil.Wheeler
  • 16,748
  • 10
  • 99
  • 155
  • this should have a 'git' tag. – Chad Okere Jan 24 '10 at 08:51
  • @Chad Okere - fair enough. Done. – Phil.Wheeler Jan 24 '10 at 09:00
  • There are not enough tags to describe this SO question fully! D: – Spoike Jan 24 '10 at 09:03
  • The wonderful thing about any DVCS is that you can reproduce any kind of collaborative workflow, including mimicking "centralized" style repositories. I'm biased because I'm principally using Mercurial, but I've also used CVS and SVN extensively in the past and honestly, old VCSes feels like stone age compared to DVCS. You'll keep seeing more an more projects switching to {Git,Bazaar,Mercurial}. Once you've tried a DVCS, you're not going back to SVN ;) – SyntaxT3rr0r Jan 25 '10 at 15:59

6 Answers6

18

As far as comparing to Git, Google recently published an interesting comparison of Git and Mercurial based on their evaluation: http://code.google.com/p/support/wiki/DVCSAnalysis

Dave Ward
  • 59,815
  • 13
  • 117
  • 134
  • Perfect. That's got everything I need. Thanks for the tip, @Dave Ward. – Phil.Wheeler Jan 24 '10 at 08:25
  • 4
    Note that this analysis is out of date, for example Git has acquired not so long time ago support for "smart" HTTP transport. – Jakub Narębski Jan 24 '10 at 18:24
  • Some more stuff is out of date: mercurial has rebase now too (no longer a git advantage); git-gc is now somewhat automatic (no longer a meaningful hg advantage), and windows support is less terrible (not really sure this is still an hg advantage). And of course, microsoft has announced their intent to integrate git support into their TFS line. – Eamon Nerbonne Feb 28 '13 at 13:56
6

Compared to SVN, for which I recently worked with again after quite awhile, Mercurial is amazing. It gave me a feeling of "Why would anyone use SVN anymore". SVN is pretty good, but Mercurial really does just work better.

For personal projects I would switch without a doubt to a DVCS. It does everything SVN does but better, and much faster. The "learning curve" is just understanding some terminology.

In reality the difference between SVN and a DVCS is that everyone has a full working repository on their system. If you decide to have a "master server", it is exactly the same as what you have, except it is setup to continually serve over a network. To sync these all you do is send/receive(push/pull) the changes between these repositories.

mfperzel
  • 4,924
  • 1
  • 18
  • 13
5

About comparing Mercurial with Git - see this SO question: Git and Mercurial - Compare and Contrast (and my long answer there).

About comparing Mercurial with svn - see this SO question: For home projects, can Mercurial or Git (or other DVCS) provide more advantages over Subversion? (theoretically this question is limited in range, though; I wrote about Git vs Subversion in my answer).

Community
  • 1
  • 1
Jakub Narębski
  • 309,089
  • 65
  • 217
  • 230
1

One thing not mentioned in the Google comparison was that Git appears to be much faster. Mercurial seems fast enough (with small projects at least) but Git is simply lightning-fast no matter what size the project.

Tronic
  • 10,250
  • 2
  • 41
  • 53
  • Remember however that you're comparing lightning and a supersonic jet. The only real issue git has is tool support on other platforms than Linux but I'd suppose that's going to change eventually. – Esko Jan 24 '10 at 08:57
  • 2
    Actually, both Git and Mercurial become super slow when the project's checked out size starts to creep towards GB's. So size does matter. – Spoike Jan 24 '10 at 09:05
  • 3
    TortoiseGit is a very good GUI tool for Windows. I guess users of other platforms are mostly happy with the commandline tool, perhaps combined with graphical tree visualization software like gitg. – Tronic Jan 24 '10 at 09:30
  • 2
    when was the last time you did a repack on a big project? It's pretty slow and needs lots of memory... (Mercurial doesn't need repack). – tonfa Jan 24 '10 at 09:34
  • Git crawls over HTTP compared to HG. If you don't need the added security of SSH vs SSL and want something simple then this can be a factor – Chris S Jul 06 '10 at 10:45
1

It's probably just me, but I have been using Mercurial for six months, after several years of using SVN exclusively, and for some reason it just doesn't fit my mental model as well. I know exactly what I'm doing in SVN, and if something goes wrong, I pretty much always know how to fix it. Conceptually I have no problem with Mercurial - love that I have a local copy of the repository, for example - but in practise I am always losing things. I think it might be because a merge in SVN is quite a big deal, whereas in Hg it's the normal way of things. I want more control over my merges. In SVN it's always clear which changeset precedes which, but Mercurial seems to lack this. Even TortoiseHg, which is quite nice visually, doesn't seem to offer enough opportunities to see exactly what's being merged.

thepeer
  • 8,190
  • 2
  • 18
  • 13
0

SVN has lots of support by 3rd party tools including IDE and bug tracking systems etc including the rather nice TortoiseSVN.

Most developers have used SVN in the past, so getting new developers up to speed on your team is quicker with SVN.

How important this sort of thing is to you, only you can decide.

Ian Ringrose
  • 51,220
  • 55
  • 213
  • 317