# HG changeset patch # User Nathan Goldbaum # Date 1558624472 14400 # Node ID ad55a0a5894fd9771eb1fe6eb758be05cb198cc2 # Parent a84564b1a0b1dd58174ff29adbf88a0a033e5251 help: include subtopic in error message if passed Differential Revision: https://phab.mercurial-scm.org/D6442 diff -r a84564b1a0b1 -r ad55a0a5894f mercurial/help.py --- a/mercurial/help.py Thu May 23 10:47:10 2019 -0400 +++ b/mercurial/help.py Thu May 23 11:14:32 2019 -0400 @@ -453,7 +453,7 @@ addtopichook('config', inserttweakrc) def help_(ui, commands, name, unknowncmd=False, full=True, subtopic=None, - **opts): + fullname=None, **opts): ''' Generate the help for 'name' as unformatted restructured text. If 'name' is None, describe the commands available. @@ -814,8 +814,16 @@ if unknowncmd: raise error.UnknownCommand(name) else: - msg = _('no such help topic: %s') % name - hint = _("try 'hg help --keyword %s'") % name + if fullname: + formatname = fullname + else: + formatname = name + if subtopic: + hintname = subtopic + else: + hintname = name + msg = _('no such help topic: %s') % formatname + hint = _("try 'hg help --keyword %s'") % hintname raise error.Abort(msg, hint=hint) else: # program name @@ -850,7 +858,7 @@ termwidth = ui.termwidth() - 2 if textwidth <= 0 or termwidth < textwidth: textwidth = termwidth - text = help_(ui, commands, name, + text = help_(ui, commands, name, fullname=fullname, subtopic=subtopic, unknowncmd=unknowncmd, full=full, **opts) blocks, pruned = minirst.parse(text, keep=keep) diff -r a84564b1a0b1 -r ad55a0a5894f tests/test-help.t --- a/tests/test-help.t Thu May 23 10:47:10 2019 -0400 +++ b/tests/test-help.t Thu May 23 11:14:32 2019 -0400 @@ -1303,6 +1303,13 @@ *empty chunk* at the end of each *delta group* denotes the boundary to the next filelog sub-segment. +non-existent subtopics print an error + + $ hg help internals.foo + abort: no such help topic: internals.foo + (try 'hg help --keyword foo') + [255] + test advanced, deprecated and experimental options are hidden in command help $ hg help debugoptADV hg debugoptADV