diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py --- a/mercurial/dispatch.py +++ b/mercurial/dispatch.py @@ -125,6 +125,8 @@ def _runcatch(req): commands.help_(ui, 'shortlist') except error.RepoError, inst: ui.warn(_("abort: %s!\n") % inst) + if inst.hint: + ui.warn(_("(%s)\n") % inst.hint) except error.ResponseError, inst: ui.warn(_("abort: %s") % inst.args[0]) if not isinstance(inst.args[1], basestring): diff --git a/mercurial/error.py b/mercurial/error.py --- a/mercurial/error.py +++ b/mercurial/error.py @@ -43,7 +43,9 @@ class ParseError(Exception): 'Exception raised when parsing config files (msg[, pos])' class RepoError(Exception): - pass + def __init__(self, *args, **kw): + Exception.__init__(self, *args) + self.hint = kw.get('hint') class RepoLookupError(RepoError): pass