# HG changeset patch # User Nicolas Dumazet # Date 2009-12-03 05:14:44 # Node ID 8bce1e0d280105db1fa286aff28d08550767fa2c # Parent 60cefb8b3c85b173b62ad37734bf8e3f680f6710 alias: do not crash when aliased command has no usage help text diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -196,7 +196,12 @@ class cmdalias(object): cmd = args.pop(0) try: - self.fn, self.opts, self.help = cmdutil.findcmd(cmd, cmdtable, False)[1] + tableentry = cmdutil.findcmd(cmd, cmdtable, False)[1] + if len(tableentry) > 2: + self.fn, self.opts, self.help = tableentry + else: + self.fn, self.opts = tableentry + self.args = aliasargs(self.fn) + args if cmd not in commands.norepo.split(' '): self.norepo = False diff --git a/tests/test-alias b/tests/test-alias --- a/tests/test-alias +++ b/tests/test-alias @@ -12,6 +12,7 @@ mylog = log lognull = log -r null shortlog = log --template '{rev} {node|short} | {date|isodate}\n' dln = lognull --debug +nousage = rollback [defaults] mylog = -q @@ -35,6 +36,10 @@ echo '% no definition' hg nodef cd alias + +echo '% no usage' +hg nousage + echo foo > foo hg ci -Amfoo diff --git a/tests/test-alias.out b/tests/test-alias.out --- a/tests/test-alias.out +++ b/tests/test-alias.out @@ -7,6 +7,8 @@ alias 'ambiguous' resolves to ambiguous alias 'recursive' resolves to unknown command 'recursive' % no definition no definition for alias 'nodefinition' +% no usage +no rollback information available adding foo % with opts C foo