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