Mercurial > public > mercurial-scm > hg
comparison mercurial/bundlerepo.py @ 27776:6fe2da48a6dd
bundlerepo: use context manager for file I/O in _writetempbundle
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Tue, 12 Jan 2016 14:48:27 -0800 |
parents | d4071cc73f46 |
children | 88609cfa3745 |
comparison
equal
deleted
inserted
replaced
27775:3ea35a0769fe | 27776:6fe2da48a6dd |
---|---|
243 This is closure because we need to make sure this tracked by | 243 This is closure because we need to make sure this tracked by |
244 self.tempfile for cleanup purposes.""" | 244 self.tempfile for cleanup purposes.""" |
245 fdtemp, temp = self.vfs.mkstemp(prefix="hg-bundle-", | 245 fdtemp, temp = self.vfs.mkstemp(prefix="hg-bundle-", |
246 suffix=".hg10un") | 246 suffix=".hg10un") |
247 self.tempfile = temp | 247 self.tempfile = temp |
248 fptemp = os.fdopen(fdtemp, 'wb') | 248 |
249 | 249 with os.fdopen(fdtemp, 'wb') as fptemp: |
250 try: | |
251 fptemp.write(header) | 250 fptemp.write(header) |
252 while True: | 251 while True: |
253 chunk = read(2**18) | 252 chunk = read(2**18) |
254 if not chunk: | 253 if not chunk: |
255 break | 254 break |
256 fptemp.write(chunk) | 255 fptemp.write(chunk) |
257 finally: | |
258 fptemp.close() | |
259 | 256 |
260 return self.vfs.open(self.tempfile, mode="rb") | 257 return self.vfs.open(self.tempfile, mode="rb") |
261 self._tempparent = None | 258 self._tempparent = None |
262 try: | 259 try: |
263 localrepo.localrepository.__init__(self, ui, path) | 260 localrepo.localrepository.__init__(self, ui, path) |