From: Junio C Hamano <gitster@pobox.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: Nicolas Pitre <nico@cam.org>, spearce@spearce.org, git@vger.kernel.org
Subject: Re: [PATCH] index-pack: correctly initialize appended objects
Date: Thu, 24 Jul 2008 22:21:14 -0700 [thread overview]
Message-ID: <7vy73q4jzp.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <alpine.DEB.1.00.0807241821440.8986@racer> (Johannes Schindelin's message of "Thu, 24 Jul 2008 18:32:00 +0100 (BST)")
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
> From: Björn Steinbrink <B.Steinbrink@gmx.de>
>
> When index-pack completes a thin pack it appends objects to the pack.
> Since the commit 92392b4(index-pack: Honor core.deltaBaseCacheLimit when
> resolving deltas) such an object can be pruned in case of memory
> pressure.
>
> To be able to re-read the object later, a few more fields have to be set.
>
> Noticed by Pierre Habouzit.
>
> Hopefully-signed-off-by: Björn Steinbrink <B.Steinbrink@gmx.de>
> Hopefully-reviewed-and-signed-off-by: Nicolas Pitre <nico@cam.org>,
>
> --
> Nico could you have a quick look? (I would ask Shawn, but I know
> that he is pretty busy with real world issues.)
Reading get_data_from_pack(), it does rely on hdr_size, idx.offset and
idx.offset of the next entry to be set correctly. The function does not
seem to use type (which the patch is also setting) nor real_type (which
the patch does not set).
However, the code checks objects[nth].real_type all over the place in the
code. Doesn't the lack of real_type assignment in append_obj_to_pack()
affect them in any way?
> diff --git a/index-pack.c b/index-pack.c
> index ac20a46..33ba8ef 100644
> --- a/index-pack.c
> +++ b/index-pack.c
> @@ -699,6 +699,9 @@ static struct object_entry *append_obj_to_pack(
> write_or_die(output_fd, header, n);
> obj[0].idx.crc32 = crc32(0, Z_NULL, 0);
> obj[0].idx.crc32 = crc32(obj[0].idx.crc32, header, n);
> + obj[0].hdr_size = n;
> + obj[0].type = type;
> + obj[0].size = size;
> obj[1].idx.offset = obj[0].idx.offset + n;
> obj[1].idx.offset += write_compressed(output_fd, buf, size, &obj[0].idx.crc32);
next prev parent reply other threads:[~2008-07-25 5:22 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-24 17:32 [PATCH] index-pack: correctly initialize appended objects Johannes Schindelin
2008-07-24 18:07 ` Björn Steinbrink
2008-07-25 5:21 ` Junio C Hamano [this message]
2008-07-25 10:24 ` Johannes Schindelin
2008-07-25 11:54 ` Nicolas Pitre
2008-07-25 12:01 ` Björn Steinbrink
2008-07-25 12:24 ` Nicolas Pitre
2008-07-25 18:15 ` Junio C Hamano
2008-07-25 11:55 ` Björn Steinbrink
2008-07-25 13:15 ` Johannes Schindelin
2008-07-25 16:42 ` Shawn O. Pearce
2008-07-25 17:13 ` Björn Steinbrink
2008-07-25 17:20 ` Shawn O. Pearce
2008-07-26 3:04 ` Johannes Schindelin
2008-07-25 11:48 ` Nicolas Pitre
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7vy73q4jzp.fsf@gitster.siamese.dyndns.org \
--to=gitster@pobox.com \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=nico@cam.org \
--cc=spearce@spearce.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.