Monday, 10 December 2012

Mercurial vs Git

Most posts about distributed version control are written by people who are biased to one particular solution. This is usually because that person has a wealth of experience in one system, and not so much experience in the other.
This post will be no different.

Prerequisite

I'm biased to windows. I know this. Mac and Linux users live in a different world to your average .NET developer, and that's always going to influence how I view these products.

Git's GUI Offering

Git offers Git for Windows. It's sub-standard, you can't see a branch map, it crashes and falls out of sync with the command window, and you can't do a fraction of the things in the GUI that you can do on the command line. This includes merging and removing branches.
I understand that the makers of Git are trying to make their product more palatable to Windows users, but in my humble opinion, if they are going to try and offer a GUI to do this, bin Git for Windows, and make better use of third-party components.

Third-party components

Mercurial actively offers TortoiseHG as a compliment, and its benefits are huge. You're able to create, merge and close branches, push, pull and contort Mercurial to your whim with a few clicks of a mouse. For Git, TortoiseGit is on its way, but it needs to be pushed harder as a package, because public ignorance of it as a product choice is high. Proof of this is the fact that there are still people trying to find ways to allow TortoiseHG to work with Git repositories!

Conclusion

I know that lovers of the command line will always prefer a black screen with coloured writing to provide them with text-based representations of their source control. I'm also very well aware of how powerful both products are in their purest CLI-based form. However, in three weeks of using a combination of the Git for Windows GUI and the command line interface (not to mention a LOT of Googling and documentation-reading!), I still couldn't do a fraction of what I learnt to do using TortoiseHG and Mercurial in the space of a week.
Productivity must not be made to suffer to be one of the cool kids.