Git vs Mercurial

Due to latest changes in projects hosting situation (like FTC Sues, Shuts Down N. Calif. Web Hosting Firm, Adobe acts against Flash video stream recorder) I started thinking about moving on to some DVCS system. Now there are only two serious alternatives: Git and Mercurial.

First of all, here are two good articles where these systems are compared:

In both of these articles Mercurial wins due to:

  • lack of good Git support in Windows system;
  • having Python API.

But also in both of these articles it is said that Git has more features and is more powerful than Mercurial. Actually none of the issues above does not concern me personally because I'm not developing in Windows OS now, and I do not require any integration with DVCS.

But let me notice that these issues are not so critical right now:

  • there is an awesome TortoiseGit project and it works really good;
  • basically only certain hooks are required for integration with SCM-software and Git has all required functionality for this, and of course hook scripts can be written in any language including Python.

But there is an issue that I really care about - I do not like the "branch" system that Mercurial provides. The new "branch" in Mercurial terminology is a physical clone of the other "branch". Although cloning uses hard links for creating copies it doesn't deny the fact that my file system will be crowded with copies of the same files. Maybe for someone it is good, but not for me - I do not like too much garbage in my computer.

And please do not forget about C++-programmers. They create a branch and have to compile this branch from scratch in Mercurial case. Though they can create a shared directory for object files, in some situations it is not acceptable.

So now it is more preferable for me to use Git. I'm not an expert in both systems, but in my case Git is more suitable for my needs.


  1. I started using Git for my development on Windows OS a while ago.
    And i found that the open source tool Git Extensions ( worked perfect for my needs.
    It integrates with windows explorer, visual studio and provides a UI for Git.
    So if you want to use Git, but feel like you can't because of bad Windows integration, i advice you to try this tool.
    TortoiseGit is also pretty good tho (but not sure if it has visual studio integration)



Post a Comment

Popular posts from this blog

Trac Ticket Workflow

Introduction to ReviewBoard

Python vs JS vs PHP for embedded systems