diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -107,6 +107,8 @@ def dispatch(req): return -1 except error.ParseError as inst: _formatparse(ferr.write, inst) + if inst.hint: + ferr.write(_("(%s)\n") % inst.hint) return -1 msg = ' '.join(' ' in a and repr(a) or a for a in req.args) @@ -202,6 +204,8 @@ def _runcatch(req): (inst.args[0], " ".join(inst.args[1]))) except error.ParseError as inst: _formatparse(ui.warn, inst) + if inst.hint: + ui.warn(_("(%s)\n") % inst.hint) return -1 except error.LockHeld as inst: if inst.errno == errno.ETIMEDOUT: diff --git a/mercurial/error.py b/mercurial/error.py --- a/mercurial/error.py +++ b/mercurial/error.py @@ -81,7 +81,7 @@ class ResponseExpected(Abort): class OutOfBandError(HintException): """Exception raised when a remote repo reports failure""" -class ParseError(Exception): +class ParseError(HintException): """Raised when parsing config files and {rev,file}sets (msg[, pos])""" class UnknownIdentifier(ParseError):