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.
--- 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