alias: don't shadow commands that we only partially matched (issue2993) (BC)
Previously, if you set an alias for "ci", it'd also shadow "commit"
even though you didn't specify that. This occurred for all commands
with explicit short variations.
--- a/mercurial/dispatch.py Tue Oct 11 18:48:45 2011 +0200
+++ b/mercurial/dispatch.py Tue Oct 11 17:20:03 2011 -0500
@@ -366,7 +366,7 @@
# definition might not exist or it might not be a cmdalias
pass
- cmdtable[aliasdef.cmd] = (aliasdef, aliasdef.opts, aliasdef.help)
+ cmdtable[aliasdef.name] = (aliasdef, aliasdef.opts, aliasdef.help)
if aliasdef.norepo:
commands.norepo += ' %s' % alias
--- a/tests/test-alias.t Tue Oct 11 18:48:45 2011 +0200
+++ b/tests/test-alias.t Tue Oct 11 17:20:03 2011 -0500
@@ -4,6 +4,8 @@
> graphlog=
>
> [alias]
+ > # should clobber ci but not commit (issue2993)
+ > ci = version
> myinit = init
> cleanstatus = status -c
> unknown = bargle
@@ -113,7 +115,7 @@
no rollback information available
$ echo foo > foo
- $ hg ci -Amfoo
+ $ hg commit -Amfoo
adding foo
@@ -195,7 +197,7 @@
$ hg echo2 foo
$ echo bar > bar
- $ hg ci -qA -m bar
+ $ hg commit -qA -m bar
$ hg count .
1
$ hg count 'branch(default)'