# HG changeset patch # User Augie Fackler # Date 2011-10-11 22:20:03 # Node ID 81c97964d123cf1bb3f55ed1dd6ad1356fb47538 # Parent 5d9a5b9198639d2b36f5cadf45fa5b105377d538 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. diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -366,7 +366,7 @@ def addaliases(ui, cmdtable): # 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 diff --git a/tests/test-alias.t b/tests/test-alias.t --- a/tests/test-alias.t +++ b/tests/test-alias.t @@ -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 usage no rollback information available $ echo foo > foo - $ hg ci -Amfoo + $ hg commit -Amfoo adding foo @@ -195,7 +197,7 @@ simple shell aliases $ hg echo2 foo $ echo bar > bar - $ hg ci -qA -m bar + $ hg commit -qA -m bar $ hg count . 1 $ hg count 'branch(default)'