diff -r c6be93a4c378 -r 195dbd1cef0c mercurial/cmdutil.py --- a/mercurial/cmdutil.py Thu Dec 01 20:42:24 2011 +0100 +++ b/mercurial/cmdutil.py Thu Dec 01 15:51:36 2011 -0600 @@ -23,7 +23,14 @@ """ choice = {} debugchoice = {} - for e in table.keys(): + + if cmd in table: + # short-circuit exact matches, "log" alias beats "^log|history" + keys = [cmd] + else: + keys = table.keys() + + for e in keys: aliases = parsealiases(e) found = None if cmd in aliases: