Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-09 Thread Jeff King
On Mon, Sep 09, 2019 at 09:39:41AM -0700, Junio C Hamano wrote: > Jeff King writes: > > > On Fri, Sep 06, 2019 at 09:59:04AM -0700, Junio C Hamano wrote: > > > >> Jeff King writes: > >> > >> > So far so good. But now imagine we call parse_commit_buffer() again, and > >> > we re-parse. How does

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-09 Thread Junio C Hamano
Jeff King writes: > On Fri, Sep 06, 2019 at 09:59:04AM -0700, Junio C Hamano wrote: > >> Jeff King writes: >> >> > So far so good. But now imagine we call parse_commit_buffer() again, and >> > we re-parse. How does that interact with the half-parsed state? Some of >> > it works OK (e.g., lookup

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-06 Thread Derrick Stolee
On 9/6/2019 1:04 PM, Jeff King wrote: > On Fri, Sep 06, 2019 at 12:48:05PM -0400, Derrick Stolee wrote: > >>> diff --git a/revision.h b/revision.h >>> index 4134dc6029..5c0b831b37 100644 >>> --- a/revision.h >>> +++ b/revision.h >>> @@ -33,7 +33,7 @@ >>> #define ALL_REV_FLAGS (((1u<<11)-1

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-06 Thread Derrick Stolee
On 9/6/2019 1:04 PM, Jeff King wrote: > On Fri, Sep 06, 2019 at 12:48:05PM -0400, Derrick Stolee wrote: > >>> diff --git a/revision.h b/revision.h >>> index 4134dc6029..5c0b831b37 100644 >>> --- a/revision.h >>> +++ b/revision.h >>> @@ -33,7 +33,7 @@ >>> #define ALL_REV_FLAGS (((1u<<11)-1

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-06 Thread Jeff King
On Fri, Sep 06, 2019 at 09:59:04AM -0700, Junio C Hamano wrote: > Jeff King writes: > > > So far so good. But now imagine we call parse_commit_buffer() again, and > > we re-parse. How does that interact with the half-parsed state? Some of > > it works OK (e.g., lookup_tree() would find the same

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-06 Thread Jeff King
On Fri, Sep 06, 2019 at 12:48:05PM -0400, Derrick Stolee wrote: > > diff --git a/revision.h b/revision.h > > index 4134dc6029..5c0b831b37 100644 > > --- a/revision.h > > +++ b/revision.h > > @@ -33,7 +33,7 @@ > > #define ALL_REV_FLAGS (((1u<<11)-1) | NOT_USER_GIVEN | TRACK_LINEAR) > > > >

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-06 Thread Junio C Hamano
Jeff King writes: > So far so good. But now imagine we call parse_commit_buffer() again, and > we re-parse. How does that interact with the half-parsed state? Some of > it works OK (e.g., lookup_tree() would find the same tree). Some not so > much (I think we'd keep appending parents at each call

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-06 Thread Derrick Stolee
On 9/5/2019 2:47 AM, Jeff King wrote: > On Wed, Sep 04, 2019 at 05:18:47PM -0400, Taylor Blau wrote: > >> All of this makes sense to me, so I'm wondering what part(s) of this you >> feel are worth addressing in this first patch series. Presumably, there >> is a longer series that we _could_ write

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-05 Thread Jeff King
On Fri, Sep 06, 2019 at 02:35:03AM -0400, Jeff King wrote: > > Fair enough. Forcing later users to reattempt parsing (and failing > > the same way) would be safer and it should also be sufficient as we > > are talking about how to handle a broken repository, i.e. an error > > case. > > One of th

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-05 Thread Jeff King
On Thu, Sep 05, 2019 at 03:19:48PM -0700, Junio C Hamano wrote: > > Here an earlier parsing error could cause (*list)->object.parsed to be > > true, but with (*list)->maybe_tree still NULL. Our call to > > parse_commit_no_graph() here would silently return "yep, already tried > > to parse this", a

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-05 Thread Junio C Hamano
Jeff King writes: > I don't think parse_commit_no_graph() returning 0 assures us that > get_commit_tree() and friends will return non-NULL. > > This is similar to the case discussed recently where a failed parse of a > tag may leave "tag->tagged == NULL" even though "tag->obj.parsed" is > set. >

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-04 Thread Jeff King
On Wed, Sep 04, 2019 at 05:18:47PM -0400, Taylor Blau wrote: > All of this makes sense to me, so I'm wondering what part(s) of this you > feel are worth addressing in this first patch series. Presumably, there > is a longer series that we _could_ write which would introduce a new > 'corrupt' field

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-04 Thread Taylor Blau
Hi Peff, On Tue, Sep 03, 2019 at 11:04:56PM -0400, Jeff King wrote: > On Tue, Sep 03, 2019 at 10:22:57PM -0400, Taylor Blau wrote: > > > When we write a commit graph chunk, we process a given list of 'struct > > commit *'s and parse out the parent(s) and tree OID in order to write > > out its info

Re: [RFC PATCH 1/1] commit-graph.c: die on un-parseable commits

2019-09-03 Thread Jeff King
On Tue, Sep 03, 2019 at 10:22:57PM -0400, Taylor Blau wrote: > When we write a commit graph chunk, we process a given list of 'struct > commit *'s and parse out the parent(s) and tree OID in order to write > out its information. > > We do this by calling 'parse_commit_no_graph', and then checking