Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> 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.



Please feel encouraged to report a bug about histedit slowness with some details so we can try and reproduce and consider a fix.


I'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. :)


Including durin42 himself ;)


well, you just addressed this message to the current lead maintainer of Mercurial, who happens to be a fellow co-worker of yours ;)


Please 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


Have you aliased `hg` to `chg` (built-in I believe). That solved things for me.


I 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




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: