diff -r a61fff493d98 -r 979c8ce9022d mercurial/help.py --- a/mercurial/help.py Mon Mar 12 18:38:26 2018 +0530 +++ b/mercurial/help.py Thu Mar 22 17:08:25 2018 -0700 @@ -20,6 +20,7 @@ encoding, error, extensions, + fancyopts, filemerge, fileset, minirst, @@ -84,7 +85,10 @@ if shortopt: so = '-' + shortopt lo = '--' + longopt - if default: + + if isinstance(default, fancyopts.customopt): + default = default.defaultvalue + if default and not callable(default): # default is of unknown type, and in Python 2 we abused # the %s-shows-repr property to handle integers etc. To # match that behavior on Python 3, we do str(default) and