resuming the command namespacing effort

Pierre-Yves David pierre-yves.david at octobus.net
Mon Mar 13 15:01:26 UTC 2023


Hi everyone,

A while back (at the last online sprint) we discussed the idea of 
introducing some command namespacing to clarify the command space a bit. 
The initial motivation is to clarify the currently implicit "debug" 
namespace that mixes all sort of commands, from massive foot-guns to 
quite reasonable routine administration commands. There are no plan to 
move command used in normal operations of "standard users" in namespace. 
"moving to a namespace" always mean a command "rename", keeping the 
previous name as a deprecated alias.

I am planning to resume working on command name-spacing this cycle. 
Introducing new command in namespace when applicable and moving some of 
the existing one when it make sense.

The currently planned namespaces are:

*# admin*
Commands that a server/site administrator might have to run as part of 
server/user management. For example:

- cache warming,
- repository format inspection and upgrade
- clone bundle management
- history stripping
- lock management ?

*# debug
*Nobody should need to run this command but Mercurial developers and 
people instructed to do so by mercurial developer, this should cover
- command that extract debug information about the repository raw 
content, statistic, encoding and efficiency,
- foot-guns (why do we have foot-guns ?)

*# script*
Command useful for scripting, their behavior and output should be script 
friendly (instead of user friendly) and they should help common 
operation needed during scripting. For example:

- checking working copy status (is the dirstate clean)
- checking if a revset match anything
- locking utility ?

*# perf*

performance command from the perf extension,. this namespace actually 
already exists for a handful of versions

Cheers

-- 
Pierre-Yves David



More information about the Mercurial-devel mailing list