Basically, they wanted a tool that was equally usable on all platforms, which excluded Git on Windows.
They also wanted something written in Python, of course, although they would have sacrificed that in the interest of pragmatism.
Similarly, most Windows developers that I encounter who run Git just use TortoiseGit. (And TortoiseHg for Mercurial for that matter).
The whole "Git on Windows" issue? Completely overblown.
The only real difference between the two are the ecosystems. Mercurial, being written is Python, is very portable and easily extensible. I feel like, because of that, the tools for Mercurial are better. Git has GitHub, and the incredible open source community they've developed there.
* Note, the rainbow road is due to one of the few differences between Git and Hg: Hg does not allow octopus merges, so the conversion turns them to a sequence of two at a time merges. Also, in the interest of full disclosure, I'm one of the devs on Kiln, so I'm certainly biased towards Hg.
$ git rev-list --merges --parents --tags | awk '{print (NF-1)}' | sort | uniq -c
4409 2
22 3
5 4
3 5
1 6
So there's been a total of 31 octopus merges compared to 4409 typical two-parent merges. 5 10
6 11
5 12
3 13
2 14
1 18
14592 2
1 20
1 21
1 24
129 3
1 30
50 4
25 5
21 6
13 7
18 8
7 9Can hg set the current branch to point anywhere in time?
Does histedit do exactly what "rebase" does? Does it also work with "--onto" and other rebase features?
histedit does a variety of things; I'm not sure if it covers all of rebase's branches. Mercurial does also have a rebase facility now as well.
That is correct. In Mercurial, git's `rebase` is (sensibly, as far as I am concerned) split into two different commands: `histedit` handles the history edition within a branch and `rebase` handles the rebasing of a branch on a revision of an other branch.
There are a few limitations to `histedit` compared to `git rebase -i` I think: I believe it's possible to split revisions using `rebase -i`, I don't think that can be done using histedit (it has pick, edit, drop and fold). Histedit also misses the (pretty recent I believe) `exec` action of git's rebase -i.
While mercurial being written in python is noted[1] , it is made explicitly clear, its not the reason behind the main selection of Hg as the version control.
[1] - http://www.python.org/dev/peps/pep-0374/#why-mercurial-over-...
This is FUD! The support for git on windows is pretty good and there is nothing obstrusive in it. You can use git on Windows fairly well. Sad to see this kind of comment written by smart people.
I agree with the grandparent, this decision was political.
It is true that git works on Windows, but that doesn't mean it works well.
I've never experienced the crashes you describe but I've never used Tortoise either. YMMV, I suppose.