# HG changeset patch # User Mads Kiilerich # Date 2013-04-15 21:43:50 # Node ID 5083baa6cbf8bb210c9a0612f992359c76747582 # Parent 2a35296a6304917471eb69869770e078f5d74983 largefiles: remove blecch from lfutil.copyandhash - don't close the passed fd diff --git a/hgext/largefiles/lfutil.py b/hgext/largefiles/lfutil.py --- a/hgext/largefiles/lfutil.py +++ b/hgext/largefiles/lfutil.py @@ -289,18 +289,11 @@ def writestandin(repo, standin, hash, ex def copyandhash(instream, outfile): '''Read bytes from instream (iterable) and write them to outfile, - computing the SHA-1 hash of the data along the way. Close outfile - when done and return the hash.''' + computing the SHA-1 hash of the data along the way. Return the hash.''' hasher = util.sha1('') for data in instream: hasher.update(data) outfile.write(data) - - # Blecch: closing a file that somebody else opened is rude and - # wrong. But it's so darn convenient and practical! After all, - # outfile was opened just to copy and hash. - outfile.close() - return hasher.hexdigest() def hashrepofile(repo, file): diff --git a/hgext/largefiles/localstore.py b/hgext/largefiles/localstore.py --- a/hgext/largefiles/localstore.py +++ b/hgext/largefiles/localstore.py @@ -45,6 +45,7 @@ class localstore(basestore.basestore): return lfutil.copyandhash(fd, tmpfile) finally: fd.close() + tmpfile.close() def _verifyfile(self, cctx, cset, contents, standin, verified): filename = lfutil.splitstandin(standin) diff --git a/hgext/largefiles/remotestore.py b/hgext/largefiles/remotestore.py --- a/hgext/largefiles/remotestore.py +++ b/hgext/largefiles/remotestore.py @@ -79,6 +79,7 @@ class remotestore(basestore.basestore): tmpfile) finally: infile.close() + tmpfile.close() def _verifyfile(self, cctx, cset, contents, standin, verified): filename = lfutil.splitstandin(standin)