Posts Tagged ‘dvcs’

Mercurial vs Git

November 16th, 2008

Personally I’m more a fan of Mercurial with the main reason being: Portability.

As far as I know Git still has problems handling Windows which is something Mercurial has never had to worry about.  So I can switch between multiple different environments without worrying about my SCM falling down.

Another reason is the name and the command: hg vs git.  Hg sounds better than git.  It looks better.  Its less to type.

But its not about me or my bias – its about cold hard facts so here they are:

Git

Pros Cons
  • Lots of features
  • More hosting options.
  • Faster – slightly.
  • GitHub.
  • Solid local branch support.
  • Poor Windows support
  • Rubbish logo
  • Silly, long SHA1 hash of revisions.
  • You need to keep ‘packing’ the repo
  • History fiddling.

Mercurial

Pros Cons
  • Portable
  • Its built with Python
  • Easily extensible using Python
  • Cool logo
  • Better documentation.
  • Local integer revision numbers on top of the SHA1
  • No need to keep packing/optimising.
  • Smaller repo footprint.
  • Better patch support (bundles and such)
  • Easy to learn.
  • Smaller feature set.
  • Few 3rd party hosting options.
  • Fewer 3rd party apps and plugins.
  • Smaller community.
  • Slower development.

Who Uses What

Mercurial Git
  • Mozilla
  • OpenSolaris
  • Aptitude
  • Netbeans
  • Dovecot
  • Linux Kernel
  • Google Android
  • Beryl
  • Fedora

Who Needs What

Mercurial is great for people who want to dive into distributed version control and get busy.  Its clean, fast and easy to learn.  With a small footprint and single binary its the Zen of DVCS.

Git is for monstrous geeks and crack whores who like to wrestle with their tools before settling into using them.  If you never use Windows and really really wanna use GitHub like all the cool kids then use Git.

Discuss?

I’m always open to feedback – as long as you agree with me.