diff -r f2b98dacb37d -r 821e664924dc mercurial/error.py --- a/mercurial/error.py Fri May 22 11:50:57 2015 -0500 +++ b/mercurial/error.py Thu May 21 16:28:06 2015 -0400 @@ -13,6 +13,11 @@ # Do not import anything here, please +class HintException(Exception): + def __init__(self, *args, **kw): + Exception.__init__(self, *args) + self.hint = kw.get('hint') + class RevlogError(Exception): pass @@ -46,11 +51,9 @@ class InterventionRequired(Exception): """Exception raised when a command requires human intervention.""" -class Abort(Exception): +class Abort(HintException): """Raised if a command needs to print an error and exit.""" - def __init__(self, *args, **kw): - Exception.__init__(self, *args) - self.hint = kw.get('hint') + pass class HookAbort(Abort): """raised when a validation hook fails, aborting an operation @@ -80,10 +83,8 @@ self.function = function self.symbols = symbols -class RepoError(Exception): - def __init__(self, *args, **kw): - Exception.__init__(self, *args) - self.hint = kw.get('hint') +class RepoError(HintException): + pass class RepoLookupError(RepoError): pass