Nguyễn Thái Ngọc Duy [off-list ref] writes:
git usually streams large blobs directly to packs. But there are cases
where git can create large loose blobs (unpack-objects or hash-object
over pipe). Or they can come from other git implementations.
core.bigfilethreshold can also be lowered down and introduce a new
wave of large loose blobs.
Use streaming interface to read/compress/write these blobs in one
go. Fall back to normal way if somehow streaming interface cannot be
used.
Signed-off-by: Nguyễn Thái Ngọc Duy <redacted>
---
On top of ng/pack-objects-cleanup. Changes since the last version is
we do not rely on close_istream(NULL); any more.
This version looks much cleaner, at least to me, as the logic in the
function always switches upon "st", using it as "are we reading the
data from the stream incrementally?" boolean.
Thanks, will queue.