##// END OF EJS Templates
bundle2-localpeer: properly propagate the server output on error (issue4594)...
Pierre-Yves David -
r24799:d99d7e3f default
parent child Browse files
Show More
@@ -136,6 +136,21 b' class localpeer(peer.peerrepository):'
136 ret = bundle2.getunbundler(self.ui, stream)
136 ret = bundle2.getunbundler(self.ui, stream)
137 return ret
137 return ret
138 except Exception, exc:
138 except Exception, exc:
139 # If the exception contains output salvaged from a bundle2
140 # reply, we need to make sure it is printed before continuing
141 # to fail. So we build a bundle2 with such output and consume
142 # it directly.
143 #
144 # This is not very elegant but allows a "simple" solution for
145 # issue4594
146 output = getattr(exc, '_bundle2salvagedoutput', ())
147 if output:
148 bundler = bundle2.bundle20(self._repo.ui)
149 for out in output:
150 bundler.addpart(out)
151 stream = util.chunkbuffer(bundler.getchunks())
152 b = bundle2.getunbundler(self.ui, stream)
153 bundle2.processbundle(self._repo, b)
139 raise
154 raise
140 except error.PushRaced, exc:
155 except error.PushRaced, exc:
141 raise error.ResponseError(_('push failed:'), str(exc))
156 raise error.ResponseError(_('push failed:'), str(exc))
@@ -561,6 +561,10 b' Doing the actual push: hook abort'
561 pre-close-tip:e7ec4e813ba6 draft
561 pre-close-tip:e7ec4e813ba6 draft
562 transaction abort!
562 transaction abort!
563 rollback completed
563 rollback completed
564 remote: adding changesets
565 remote: adding manifests
566 remote: adding file changes
567 remote: added 1 changesets with 1 changes to 1 files
564 abort: pretxnclose.failpush hook exited with status 1
568 abort: pretxnclose.failpush hook exited with status 1
565 [255]
569 [255]
566
570
General Comments 0
You need to be logged in to leave comments. Login now