Linus Torvalds <torvalds@xxxxxxxx> writes: > On Tue, 7 Mar 2006, Junio C Hamano wrote: >> >> 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. - : 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