help: include subtopic in error message if passed
Differential Revision: https://phab.mercurial-scm.org/D6442
--- 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)
--- 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