4 ms·
For those that don't want to deal with the Python startup time, the Mercurial team already has an attempt at fixing this with a tool called CHg[0]. It is a C b
by kyrra 9y ago
For those that don't want to deal with the Python startup time, the Mercurial team already has an attempt at fixing this with a tool called CHg[0]. It is a C binary that interacts with the Mercurial CommandServer[1], which is just a long running version of Mercurial CLI that you can interact with over a pipe.
Using Rust as the primary client would simplify this a lot, but is a lot more work than what CHg accomplished.
[0] https://www.mercurial-scm.org/wiki/CHg https://www.mercurial-scm.org/wiki/CHg
[1] https://www.mercurial-scm.org/wiki/CommandServer https://www.mercurial-scm.org/wiki/CommandServer
- ngrilly 9y agoThis is already explained in the linked article.
- kyrra 9y agoI noticed this after the fact. Thanks for pointing it out. I had previously looked into understanding how mercurial worked and what options there were for different frontends or backends. (And what it would take to write my own backend just to understand a very basic flow of a clone or pull). It's a lot of work for sure and there mercurial team (at least mpm a few years back) preferred one true implementation.