mercurial/localrepo.py
changeset 24798 9fbf0a2a72a1
parent 24792 7d0421de8de3
child 24799 d99d7e3f5cda
--- a/mercurial/localrepo.py	Thu Apr 16 03:17:37 2015 -0400
+++ b/mercurial/localrepo.py	Thu Apr 16 05:09:37 2015 -0400
@@ -125,15 +125,18 @@
 
         This function handles the repo locking itself."""
         try:
-            cg = exchange.readbundle(self.ui, cg, None)
-            ret = exchange.unbundle(self._repo, cg, heads, 'push', url)
-            if util.safehasattr(ret, 'getchunks'):
-                # This is a bundle20 object, turn it into an unbundler.
-                # This little dance should be dropped eventually when the API
-                # is finally improved.
-                stream = util.chunkbuffer(ret.getchunks())
-                ret = bundle2.getunbundler(self.ui, stream)
-            return ret
+            try:
+                cg = exchange.readbundle(self.ui, cg, None)
+                ret = exchange.unbundle(self._repo, cg, heads, 'push', url)
+                if util.safehasattr(ret, 'getchunks'):
+                    # This is a bundle20 object, turn it into an unbundler.
+                    # This little dance should be dropped eventually when the
+                    # API is finally improved.
+                    stream = util.chunkbuffer(ret.getchunks())
+                    ret = bundle2.getunbundler(self.ui, stream)
+                return ret
+            except Exception, exc:
+                raise
         except error.PushRaced, exc:
             raise error.ResponseError(_('push failed:'), str(exc))