--- a/hgext/largefiles/lfutil.py Sat Oct 08 00:59:40 2016 +0200
+++ b/hgext/largefiles/lfutil.py Sat Oct 08 00:59:41 2016 +0200
@@ -54,10 +54,10 @@
util.oslink(src, dest)
except OSError:
# if hardlinks fail, fallback on atomic copy
- dst = util.atomictempfile(dest)
- for chunk in util.filechunkiter(open(src, 'rb')):
- dst.write(chunk)
- dst.close()
+ with open(src, 'rb') as srcf:
+ with util.atomictempfile(dest) as dstf:
+ for chunk in util.filechunkiter(srcf):
+ dstf.write(chunk)
os.chmod(dest, os.stat(src).st_mode)
def usercachepath(ui, hash):
@@ -264,11 +264,11 @@
link(usercachepath(repo.ui, hash), storepath(repo, hash))
else:
util.makedirs(os.path.dirname(storepath(repo, hash)))
- dst = util.atomictempfile(storepath(repo, hash),
- createmode=repo.store.createmode)
- for chunk in util.filechunkiter(open(file, 'rb')):
- dst.write(chunk)
- dst.close()
+ with open(file, 'rb') as srcf:
+ with util.atomictempfile(storepath(repo, hash),
+ createmode=repo.store.createmode) as dstf:
+ for chunk in util.filechunkiter(srcf):
+ dstf.write(chunk)
linktousercache(repo, hash)
def linktousercache(repo, hash):
@@ -370,10 +370,9 @@
if not os.path.exists(file):
return ''
hasher = hashlib.sha1('')
- fd = open(file, 'rb')
- for data in util.filechunkiter(fd, 128 * 1024):
- hasher.update(data)
- fd.close()
+ with open(file, 'rb') as fd:
+ for data in util.filechunkiter(fd, 128 * 1024):
+ hasher.update(data)
return hasher.hexdigest()
def getexecutable(filename):