# HG changeset patch # User Alexis S. L. Carvalho # Date 1160350043 10800 # Node ID 399c04369a1b87976596051715d52a63351428a1 # Parent 0b5d626b354e52554bbfc69665f339a111bb26ee fix bash completion of debug commands; add test for debugcomplete The debugconfig -> showconfig renaming broke things. diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -3137,7 +3137,7 @@ def findpossible(ui, cmd): 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]) diff --git a/tests/test-debugcomplete b/tests/test-debugcomplete new file mode 100755 --- /dev/null +++ b/tests/test-debugcomplete @@ -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 diff --git a/tests/test-debugcomplete.out b/tests/test-debugcomplete.out new file mode 100644 --- /dev/null +++ b/tests/test-debugcomplete.out @@ -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