From: Derrick Stolee Date: Tue, 03 Apr 2018 18:32:19 GMT Subject: Re: [PATCH 1/6] object.c: parse commit in graph first Message-ID: <04f9d212-58b0-df15-43e1-ce6320585291@gmail.com> In-Reply-To: <20180403182846.GB8377@sigill.intra.peff.net> On 4/3/2018 2:28 PM, Jeff King wrote: > On Tue, Apr 03, 2018 at 11:21:36AM -0700, Jonathan Tan wrote: > >> On Tue, 3 Apr 2018 12:51:38 -0400 >> Derrick Stolee wrote: >> >>> Most code paths load commits using lookup_commit() and then >>> parse_commit(). In some cases, including some branch lookups, the commit >>> is parsed using parse_object_buffer() which side-steps parse_commit() in >>> favor of parse_commit_buffer(). >>> >>> Before adding generation numbers to the commit-graph, we need to ensure >>> that any commit that exists in the graph is loaded from the graph, so >>> check parse_commit_in_graph() before calling parse_commit_buffer(). >>> >>> Signed-off-by: Derrick Stolee >> Modifying parse_object_buffer() is the most pragmatic way to accomplish >> this, but this also means that parse_object_buffer() now potentially >> reads from the local object store (instead of only relying on what's in >> memory and what's in the provided buffer). parse_object_buffer() is >> called by several callers including in builtin/fsck.c. I would feel more >> comfortable if the relevant [1] caller to parse_object_buffer() was >> modified instead of parse_object_buffer(), but I'll let others give >> their opinions too. > It's not just you. This seems like a really odd place to put it. > Especially because if we have the buffer to pass to this function, then > we'd already have incurred the cost to inflate the object. > OK. Thanks. I'll try to find the better place to put this check. -Stolee