diff --git a/mercurial/help.py b/mercurial/help.py --- a/mercurial/help.py +++ b/mercurial/help.py @@ -168,7 +168,10 @@ # the %s-shows-repr property to handle integers etc. To # match that behavior on Python 3, we do str(default) and # then convert it to bytes. - desc += _(" (default: %s)") % pycompat.bytestr(default) + defaultstr = pycompat.bytestr(default) + if default is True: + defaultstr = _("on") + desc += _(" (default: %s)") % defaultstr if isinstance(default, list): lo += " %s [+]" % optlabel diff --git a/tests/test-help.t b/tests/test-help.t --- a/tests/test-help.t +++ b/tests/test-help.t @@ -809,6 +809,8 @@ > [(b'', b'longdesc', 3, b'x'*67), > (b'n', b'', None, b'normal desc'), > (b'', b'newline', b'', b'line1\nline2'), + > (b'', b'default-off', False, b'enable X'), + > (b'', b'default-on', True, b'enable Y'), > (b'', b'callableopt', func, b'adds foo'), > (b'', b'customopt', customopt(''), b'adds bar'), > (b'', b'customopt-withdefault', customopt('foo'), b'adds bar')], @@ -903,6 +905,8 @@ xxxxxxxxxxxxxxxxxxxxxxx (default: 3) -n -- normal desc --newline VALUE line1 line2 + --default-off enable X + --default-on enable Y (default: on) --callableopt VALUE adds foo --customopt VALUE adds bar --customopt-withdefault VALUE adds bar (default: foo)