diff -r 76ecf0227ea5 -r ed9950ba091e mercurial/streamclone.py --- a/mercurial/streamclone.py Fri Jan 15 13:14:49 2016 -0800 +++ b/mercurial/streamclone.py Fri Jan 15 13:14:49 2016 -0800 @@ -297,8 +297,7 @@ repo.ui.progress(_('clone'), 0, total=bytecount) start = time.time() - tr = repo.transaction('clone') - try: + with repo.transaction('clone'): for i in xrange(filecount): # XXX doesn't support '\n' or '\r' in filenames l = fp.readline() @@ -318,9 +317,6 @@ repo.ui.progress(_('clone'), handled_bytes, total=bytecount) ofp.write(chunk) - tr.close() - finally: - tr.release() # Writing straight to files circumvented the inmemory caches repo.invalidate()