Re: [RFH] zlib gurus out there?
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:42:21
Linus Torvalds [off-list ref] writes:
On Tue, 7 Mar 2006, Junio C Hamano wrote:quoted
However, I am stuck with the first step, which is to do a full flush after the header. An obvious change to the code quoted above writes out a corrupt object: /* First header.. */ stream.next_in = hdr; stream.avail_in = hdrlen; - while (deflate(&stream, 0) == Z_OK) + while (deflate(&stream, Z_FULL_FLUSH) == Z_OK) /* nothing */;No, I don't think that's good. You're only doing a partial deflate, you can't ask for a Z_FULL_FLUSH. That only works if you give it the whole buffer, and you don't.
So, in short there is no way to create:
hdr part deflated.
flush.
data part deflated independently.
and have the current sha1_read_file() not to notice that flush,
while I can inspect the deflated stream to find the "flush", and
copy only the defalted data part into a pack? Bummer... I was
really shooting for full backward compatibility.