Are these extensions considered first-class citizens by the Mercurial dev team, and therefore part of Mercurial’s overall approach to DVCS?
Yes, although we will not recommend their use for new users at all, they are very useful for extended use. I think everyone in the development team has an extension (at least mq, patchbomb, and sometimes a record).
The extension adopted by hgext/ is considered a priori for inclusion, and we usually require them to run tests. But they are often owned by third-party contributors and are not updated by the development team, except for API changes inside the main hg.
Why are they implemented outside the default functions and disabled by default?
We usually think that hg should stay simple, and adding more commands can confuse users (for example, if you have a simple workflow, you don't need to learn about mq). But if the command is considered useful to most users, it can migrate from the extension to the kernel (this was the case for bisect, and this applies to subrepo functions).
tonfa
source share