# HG changeset patch # User Yuya Nishihara # Date 1499437516 -32400 # Node ID c784308305c6cdd4f968ea54e79ca8a71f172103 # Parent 50243c975fc2ee605ebac493f4ab18d37117e46a streamclone: close large revlog files explicitly in generatev1() diff -r 50243c975fc2 -r c784308305c6 mercurial/streamclone.py --- a/mercurial/streamclone.py Tue Jul 11 05:06:01 2017 +0200 +++ b/mercurial/streamclone.py Fri Jul 07 23:25:16 2017 +0900 @@ -221,13 +221,12 @@ repo.ui.debug('sending %s (%d bytes)\n' % (name, size)) # partially encode name over the wire for backwards compat yield '%s\0%d\n' % (store.encodedir(name), size) - if size <= 65536: - with svfs(name, 'rb', auditpath=False) as fp: + with svfs(name, 'rb', auditpath=False) as fp: + if size <= 65536: yield fp.read(size) - else: - data = svfs(name, auditpath=False) - for chunk in util.filechunkiter(data, limit=size): - yield chunk + else: + for chunk in util.filechunkiter(fp, limit=size): + yield chunk return len(entries), total_bytes, emitrevlogdata()