--- a/mercurial/commands.py Mon Oct 09 15:44:20 2006 +0200
+++ b/mercurial/commands.py Mon Oct 09 15:52:37 2006 +0200
@@ -3146,7 +3146,7 @@
found = a
break
if found is not None:
- if aliases[0].startswith("debug"):
+ if aliases[0].startswith("debug") or found.startswith("debug"):
debugchoice[found] = (aliases, table[e])
else:
choice[found] = (aliases, table[e])
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-debugcomplete Mon Oct 09 15:52:37 2006 +0200
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+echo '% Show all commands except debug commands'
+hg debugcomplete
+
+echo
+echo '% Show all commands that start with "a"'
+hg debugcomplete a
+
+echo
+echo '% Do not show debug commands if there are other candidates'
+hg debugcomplete d
+
+echo
+echo '% Show debug commands if there are no other candidates'
+hg debugcomplete debug
+
+echo
+echo '% Do not show the alias of a debug command if there are other candidates'
+echo '% (this should hide rawcommit)'
+hg debugcomplete r
+
+echo
+echo '% Show the alias of a debug command if there are no other candidates'
+hg debugcomplete rawc
+
+echo
+echo '% Show the global options'
+hg debugcomplete --options | sort
+
+echo
+echo '% Show the options for the "serve" command'
+hg debugcomplete --options serve | sort
+
+echo
+echo '% Show an error if we use --options with an ambiguous abbreviation'
+hg debugcomplete --options s
+
+exit 0
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-debugcomplete.out Mon Oct 09 15:52:37 2006 +0200
@@ -0,0 +1,150 @@
+% Show all commands except debug commands
+add
+addremove
+annotate
+archive
+backout
+bundle
+cat
+clone
+commit
+copy
+diff
+export
+grep
+heads
+help
+identify
+import
+incoming
+init
+locate
+log
+manifest
+merge
+outgoing
+parents
+paths
+pull
+push
+recover
+remove
+rename
+revert
+rollback
+root
+serve
+showconfig
+status
+tag
+tags
+tip
+unbundle
+update
+verify
+version
+
+% Show all commands that start with "a"
+add
+addremove
+annotate
+archive
+
+% Do not show debug commands if there are other candidates
+diff
+
+% Show debug commands if there are no other candidates
+debugancestor
+debugcheckstate
+debugcomplete
+debugconfig
+debugdata
+debugforget
+debugindex
+debugindexdot
+debugrawcommit
+debugrebuildstate
+debugrename
+debugsetparents
+debugstate
+debugundo
+debugwalk
+
+% Do not show the alias of a debug command if there are other candidates
+% (this should hide rawcommit)
+recover
+remove
+rename
+revert
+rollback
+root
+
+% Show the alias of a debug command if there are no other candidates
+rawcommit
+
+% Show the global options
+--config
+--cwd
+--debug
+--debugger
+--help
+--lsprof
+--noninteractive
+--profile
+--quiet
+--repository
+--time
+--traceback
+--verbose
+--version
+-R
+-h
+-q
+-v
+-y
+
+% Show the options for the "serve" command
+--accesslog
+--address
+--config
+--cwd
+--daemon
+--daemon-pipefds
+--debug
+--debugger
+--errorlog
+--help
+--ipv6
+--lsprof
+--name
+--noninteractive
+--pid-file
+--port
+--profile
+--quiet
+--repository
+--stdio
+--style
+--templates
+--time
+--traceback
+--verbose
+--version
+--webdir-conf
+-6
+-A
+-E
+-R
+-a
+-d
+-h
+-n
+-p
+-q
+-t
+-v
+-y
+
+% Show an error if we use --options with an ambiguous abbreviation
+hg: command 's' is ambiguous:
+ serve showconfig status