These patches make sure we avoid keeping whole blob in memory, at least in common cases. Blob-only streaming code paths are opened to accomplish that. I don't quite like having three different implementations for checking sha-1 signature (one on git_istream, one on packed_git and the other one in index-pack) but I failed to see how to unify them. Making archive-zip work with stream can be difficult. But at least tar format works. Good enough for me. Nguyễn Thái Ngọc Duy (11): Add more large blob test cases Factor out and export large blob writing code to arbitrary file handle cat-file: use streaming interface to print blobs parse_object: special code path for blobs to avoid putting whole object in memory show: use streaming interface for showing blobs index-pack --verify: skip sha-1 collision test index-pack: split second pass obj handling into own function index-pack: reduce memory usage when the pack has large blobs pack-check: do not unpack blobs archive: support streaming large files to a tar archive fsck: use streaming interface for writing lost-found blobs archive-tar.c | 35 +++++++++++++--- archive-zip.c | 9 ++-- archive.c | 51 ++++++++++++++++-------- archive.h | 11 ++++- builtin/cat-file.c | 22 ++++++++++ builtin/fsck.c | 8 +--- builtin/index-pack.c | 108 +++++++++++++++++++++++++++++++++++++------------ builtin/log.c | 9 ++++- cache.h | 5 ++- entry.c | 39 ++++++++++++------ fast-import.c | 2 +- object.c | 11 +++++ pack-check.c | 21 +++++++++- sha1_file.c | 78 +++++++++++++++++++++++++++++++----- t/t1050-large.sh | 59 +++++++++++++++++++++++++++- wrapper.c | 27 +++++++++++- 16 files changed, 400 insertions(+), 95 deletions(-) -- 1.7.3.1.256.g2539c.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html