alias: fall back to normal error handling for ambigious commands (fixes issue2475) stable
authorSteve Losh <steve@stevelosh.com>
Fri, 05 Nov 2010 15:54:32 -0400
branchstable
changeset 12932 ab93029ab622
parent 12930 9bb180abc4d0
child 12933 7a2bca0b1e70
child 12934 ea7ad8c3988a
child 12937 6ff784de7c3a
alias: fall back to normal error handling for ambigious commands (fixes issue2475)
mercurial/dispatch.py
tests/test-alias.t
--- a/mercurial/dispatch.py	Fri Nov 05 15:13:22 2010 +0100
+++ b/mercurial/dispatch.py	Fri Nov 05 15:54:32 2010 -0400
@@ -453,7 +453,7 @@
     cmd = args[0]
     try:
         aliases, entry = cmdutil.findcmd(cmd, cmdtable, lui.config("ui", "strict"))
-    except error.UnknownCommand:
+    except (error.AmbiguousCommand, error.UnknownCommand):
         commands.norepo = norepo
         os.chdir(cwd)
         return
--- a/tests/test-alias.t	Fri Nov 05 15:13:22 2010 +0100
+++ b/tests/test-alias.t	Fri Nov 05 15:54:32 2010 -0400
@@ -29,6 +29,11 @@
   > mcount = !hg log \$@ --template='.' | wc -c | sed -e 's/ //g'
   > rt = root
   > tglog = glog --template "{rev}:{node|short}: '{desc}' {branches}\n"
+  > idalias = id
+  > idaliaslong = id
+  > idaliasshell = !echo test
+  > parentsshell1 = !echo one
+  > parentsshell2 = !echo two
   > 
   > [defaults]
   > mylog = -q
@@ -194,6 +199,35 @@
   o  0:e63c23eaa88a: 'foo'
   
 
+
+shadowing
+
+  $ hg i
+  hg: command 'i' is ambiguous:
+      idalias idaliaslong idaliasshell identify import incoming init
+  [255]
+  $ hg id
+  7e7f92de180e tip
+  $ hg ida
+  hg: command 'ida' is ambiguous:
+      idalias idaliaslong idaliasshell
+  [255]
+  $ hg idalias
+  7e7f92de180e tip
+  $ hg idaliasl
+  7e7f92de180e tip
+  $ hg idaliass
+  test
+  $ hg parentsshell
+  hg: command 'parentsshell' is ambiguous:
+      parentsshell1 parentsshell2
+  [255]
+  $ hg parentsshell1
+  one
+  $ hg parentsshell2
+  two
+
+
 shell aliases with global options
 
   $ hg init sub