5 ms·
> It is superior to Git in every way except performance and adoption. Performance is such an important advantage, though. I type git diff hundreds of times a
by jlebar 7y ago
> It is superior to Git in every way except performance and adoption.
Performance is such an important advantage, though.
I type git diff hundreds of times a day, and when I switched from hg to git at Mozilla, this made such a big difference in my life.
These days I type hg histedit maybe fifty times a day at Google, and I cry every time because it is so. glacially. slow. hg diff too. And I'm working with a relatively small repository.
Speed matters for tools we use all the time.
I'd also posit that the process of writing "plugins" for git is much easier than writing hg plugins. A git "plugin" is just a shell script that uses git. If you can use git, you can write a shell script that uses it. An hg plugin...whoaboy.
- durin42 7y agoPlease feel encouraged to report a bug about histedit slowness with some details so we can try and reproduce and consider a fix.
- jlebar 7y agoI'll see what I can do. Because it's Google code, it may not be feasible. But we have a whole team of hg developers ourselves, maybe I should bug them before putting it on you. :)
- pgt 7y agoPlease correct me if I'm wrong, but I think it was in "The Hundred-Year Language" [^1] where @pg argued for performance as a language design feature. He could have meant a different kind of performance though. - [^1]: http://www.paulgraham.com/hundred.html http://www.paulgraham.com/hundred.html
- jwatt 7y agoHave you aliased `hg` to `chg` (built-in I believe). That solved things for me.
- jlebar 7y agoI hadn't heard of this! It definitely helps with startup time. $ time hg help > /dev/null real 0m0.232s user 0m0.196s sys 0m0.033s $ time chg help > /dev/null real 0m0.081s user 0m0.003s sys 0m0.000s But because an empty `hg diff` takes 1.3s for me, taking 150ms off the top isn't a big help. $ time hg diff real 0m1.383s user 0m0.558s sys 0m0.333s $ time chg diff real 0m1.224s user 0m0.003s sys 0m0.007s