# HG changeset patch # User Angel Ezquerra # Date 1357230958 -3600 # Node ID 9aa6bee6e9f9475e15f3e439c3f33f71d4439241 # Parent ed923a2d5ae96ff5715144320c73bb0c6722f818 subrepo: add subrepo property to SubrepoAbort exceptions This new property contains the path of the subrepo that generated the exception. This information can then be used by GUI tools such as TortoiseHg. diff -r ed923a2d5ae9 -r 9aa6bee6e9f9 mercurial/subrepo.py --- a/mercurial/subrepo.py Tue Jan 08 15:43:48 2013 -0800 +++ b/mercurial/subrepo.py Thu Jan 03 17:35:58 2013 +0100 @@ -16,6 +16,9 @@ class SubrepoAbort(error.Abort): """Exception class used to avoid handling a subrepo error more than once""" + def __init__(self, *args, **kw): + super(SubrepoAbort, self).__init__(*args, **kw) + self.subrepo = kw.get('subrepo') def annotatesubrepoerror(func): def decoratedmethod(self, *args, **kargs): @@ -25,9 +28,10 @@ # This exception has already been handled raise ex except error.Abort, ex: - errormsg = _('%s (in subrepo %s)') % (str(ex), subrelpath(self)) + subrepo = subrelpath(self) + errormsg = _('%s (in subrepo %s)') % (str(ex), subrepo) # avoid handling this exception by raising a SubrepoAbort exception - raise SubrepoAbort(errormsg, hint=ex.hint) + raise SubrepoAbort(errormsg, hint=ex.hint, subrepo=subrepo) return res return decoratedmethod