Mercurial > public > mercurial-scm > hg
comparison mercurial/httppeer.py @ 25085:e05734cd7902
httppeer: use try/except/finally
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Fri, 15 May 2015 09:57:02 -0500 |
parents | cda18ded2c48 |
children | 00ecc894138d |
comparison
equal
deleted
inserted
replaced
25084:7046c7e7fcb4 | 25085:e05734cd7902 |
---|---|
196 tempname = changegroup.writebundle(self.ui, cg, None, type) | 196 tempname = changegroup.writebundle(self.ui, cg, None, type) |
197 fp = httpconnection.httpsendfile(self.ui, tempname, "rb") | 197 fp = httpconnection.httpsendfile(self.ui, tempname, "rb") |
198 headers = {'Content-Type': 'application/mercurial-0.1'} | 198 headers = {'Content-Type': 'application/mercurial-0.1'} |
199 | 199 |
200 try: | 200 try: |
201 try: | 201 r = self._call(cmd, data=fp, headers=headers, **args) |
202 r = self._call(cmd, data=fp, headers=headers, **args) | 202 vals = r.split('\n', 1) |
203 vals = r.split('\n', 1) | 203 if len(vals) < 2: |
204 if len(vals) < 2: | 204 raise error.ResponseError(_("unexpected response:"), r) |
205 raise error.ResponseError(_("unexpected response:"), r) | 205 return vals |
206 return vals | 206 except socket.error, err: |
207 except socket.error, err: | 207 if err.args[0] in (errno.ECONNRESET, errno.EPIPE): |
208 if err.args[0] in (errno.ECONNRESET, errno.EPIPE): | 208 raise util.Abort(_('push failed: %s') % err.args[1]) |
209 raise util.Abort(_('push failed: %s') % err.args[1]) | 209 raise util.Abort(err.args[1]) |
210 raise util.Abort(err.args[1]) | |
211 finally: | 210 finally: |
212 fp.close() | 211 fp.close() |
213 os.unlink(tempname) | 212 os.unlink(tempname) |
214 | 213 |
215 def _calltwowaystream(self, cmd, fp, **args): | 214 def _calltwowaystream(self, cmd, fp, **args): |