Re: [PATCH 3/3] mimic unpack-objects when --stdin is used with index-pack
- From
Nicolas Pitre <nico@cam.org>
- Date
- Oct 26, 2006, 13:46 UTC
- Message-ID
- <Pine.LNX.4.64.0610260940020.12418@xanadu.home>
- In-Reply-To
- <7vmz7jqzoo.fsf@assigned-by-dhcp.cox.net>
On Thu, 26 Oct 2006, Junio C Hamano wrote:
Show 11 quoted lines
> Nicolas Pitre <nico@cam.org> writes: > > > It appears that git-unpack-objects writes the last part of the input > > buffer to stdout after the pack has been parsed. This looks a bit > > suspicious since the last fill() might have filled the buffer up to > > the 4096 byte limit and more data might still be pending on stdin, > > but since this is about being a drop-in replacement for unpack-objects > > let's simply duplicate the same behavior for now. > > This seems to break t5300 when applied on top of everything > else. The other two numbered patches are Ok.
Yeah.... actually the problem appeared to me in my sleep! (Worrisome isn't it?)
So you just need to amend this patch with:
diff --git a/index-pack.c b/index-pack.c index 7f7dc5d..5c747a6 100644 --- a/index-pack.c +++ b/index-pack.c @@ -461,7 +461,7 @@ static void parse_pack_objects(unsigned /* If input_fd is a file, we should have reached its end now. */ if (fstat(input_fd, &st)) die("cannot fstat packfile: %s", strerror(errno)); - if (S_ISREG(st.st_mode) && st.st_size != consumed_bytes + 20) + if (S_ISREG(st.st_mode) && st.st_size != consumed_bytes) die("pack has junk at the end"); if (!nr_deltas)