Re: [PATCH 3/3] mimic unpack-objects when --stdin is used with index-pack

2 messages, 2 authors, 2016-08-11 · open the first message on its own page

Re: [PATCH 3/3] mimic unpack-objects when --stdin is used with index-pack

From: Junio C Hamano <hidden>
Date: 2016-08-11 19:17:16

Nicolas Pitre [off-list ref] 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.

Re: [PATCH 3/3] mimic unpack-objects when --stdin is used with index-pack

From: Nicolas Pitre <hidden>
Date: 2016-08-11 20:22:21

On Thu, 26 Oct 2006, Junio C Hamano wrote:
Nicolas Pitre [off-list ref] writes:
quoted
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)

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help