# HG changeset patch # User Augie Fackler # Date 1318371603 18000 # 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 -r 5d9a5b919863 -r 81c97964d123 mercurial/dispatch.py --- 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 diff -r 5d9a5b919863 -r 81c97964d123 tests/test-alias.t --- 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)'