IMHO having multi-word commands would be more consistent and I'd
happily
implement that, but I guess nobody would use it actually =). I
absolutely dislike command names with dashes or even underscores in
it,
they are long and naturally hard to type.
But what about the following: Let us put all commands into appropriate
groups, but allow shorthands, in the way
mtn commit
is actually resolved to
mtn workspace commit
just because there is no other command group which also has a "commit"
command. Now if we would introduce a "commit" command in some other
group, there could be the output
mtn: "commit" resolves to multiple commands, which one did you mean?
mtn:
mtn: workspace commit Commit workspace to database
mtn: foo commit Commit foo to somewhere
This would also resolve the "mtn heads" <> "mtn list heads" issue.
Logically (for the help output) the heads command would be listed
under
list (ls), but mtn heads would also work (as before) because there
is no
other command with the same name (yet).