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)