mercurial/subrepo.py
changeset 18263 9aa6bee6e9f9
parent 18109 9e3910db4e78
child 18296 a74101cd6965
--- 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