# HG changeset patch # User Martin von Zweigbergk # Date 2019-09-04 17:42:26 # Node ID 58f73e9ccfff88a10b3a5d9f703b9fc9e5b385c0 # Parent 64e28b8917963941e2a5dbcfe371fef16a8042ce httppeer: use context manager when writing temporary bundle to send Differential Revision: https://phab.mercurial-scm.org/D6783 diff --git a/mercurial/httppeer.py b/mercurial/httppeer.py --- a/mercurial/httppeer.py +++ b/mercurial/httppeer.py @@ -490,18 +490,16 @@ class httppeer(wireprotov1peer.wirepeer) os.unlink(tempname) def _calltwowaystream(self, cmd, fp, **args): - fh = None fp_ = None filename = None try: # dump bundle to disk fd, filename = pycompat.mkstemp(prefix="hg-bundle-", suffix=".hg") - fh = os.fdopen(fd, r"wb") - d = fp.read(4096) - while d: - fh.write(d) + with os.fdopen(fd, r"wb") as fh: d = fp.read(4096) - fh.close() + while d: + fh.write(d) + d = fp.read(4096) # start http push fp_ = httpconnection.httpsendfile(self.ui, filename, "rb") headers = {r'Content-Type': r'application/mercurial-0.1'} @@ -509,8 +507,7 @@ class httppeer(wireprotov1peer.wirepeer) finally: if fp_ is not None: fp_.close() - if fh is not None: - fh.close() + if filename is not None: os.unlink(filename) def _callcompressable(self, cmd, **args):