It is, and its not. I’ve used both, and prefer mercurial for a number of reasons (see my githubvs bitbucketprofile if you don’t believe me)
- TortoiseHG
- works on windows
- same on any platform
- branches
- newbie friendly &easier to learn
- undoing stuff
By far my favorite reason is TortoiseHG. Its light years ahead of tortoise git, and works on all platforms (almost) equally well. I like being able to visualize history, and imho, for merging and fancy stuff, a good gui is essential. If there was a VERY good terminal program, I might reconsider, but until then, gui’s are way more intuitive and friendly than most terminal programs. Git gui feels like a kludge sometimes
Windriver is for windows. Git was originally for linux. Mercurial is written in python, which is very cross platform, making the whole experience seamless. Git on windows is more of an afterthought, requiring its own special POSIX enviroment. Go native! (git runs like a sloth on my windows machine, even git help takes ~5 seconds(!))
Again, TortoiseHG and the py code are exactly the same on win, mac, linux. tortoise git is windows only, and git works slightly differently on each platform.
Branches are interesting: in mercurial, each branch is a specific line, and you can account for it in history. Mercurial also has bookmarks, that point to specific commits, but don’t have history, so if you want to see what bookmark a certain revision used to have, you are out of luck. Git’s branches are essentially hg’s bookmarks. There is simply a mess of named locations on the current history, and 20 branches can point to the exact same commit. Git also likes to make branches. a branch in a repo is different from the same branch in the local machine. Also, git likes to merge. way too much. (especially github)
imho, hg (and especially tortoisehg) is much easier to learn. Even just using the command line, hg has excellent, short, consice help files, while git has monsters of help pages with many things you sometimes don’t want to know (though it has gotten better). Some commands/operations in git seem very odd and produce strange warnings, like checking out a previous commit. And as I will show below, reverting is funny. git tries to do too many things sometimes also. I easily found how to edit history in tortoisehg, but tortoisegit and git gui took a bit more work
you are working on something, and oops! I don’t want to delete that file!
hg revert your-file-you-want-back
git checkout – your-file-you-want-back
want to restore all your changes?
hg revert
git reset --hard
For a nice (relatively unbiased) overview, look at http://mercurial.selenic.com/wiki/GitConcepts
and of the three things git is “better” at than hg on http://whygitisbetterthanx.com/, I’d only agree GitHub (though Bitbucket is better in some areas, as it supports both git and hgm)
why? hg has cheap local branching, in both normal branches, and bookmarks, and the staging area in git is matched with tortoisehg (though they dropped hunks with 2.0, but it should be coming back soon), and/or mq (Mercurial Queues)