From: Junio C Hamano Date: Mon, 06 May 2013 20:45:26 GMT Subject: Re: [PATCH v3 5/9] revision.c: Make --full-history consider more merges Message-ID: <7vtxmfq1ll.fsf@alter.siamese.dyndns.org> In-Reply-To: <1367767977-14513-6-git-send-email-kevin@bracey.fi> Kevin Bracey writes: > diff --git a/revision.c b/revision.c > index a67b615..c88ded8 100644 > --- a/revision.c > +++ b/revision.c > @@ -429,10 +429,100 @@ static int rev_same_tree_as_empty(struct rev_info *revs, struct commit *commit) > return retval >= 0 && (tree_difference == REV_TREE_SAME); > } > > +struct treesame_state { > + unsigned int nparents; > + unsigned char treesame[FLEX_ARRAY]; > +}; I have been wondering if we want to do one-bit (not one-byte) per parent but no biggie ;-) > @@ -1971,6 +2083,70 @@ static struct merge_simplify_state *locate_simplify_state(struct rev_info *revs, > return st; > } > > +static int mark_redundant_parents(struct rev_info *revs, struct commit *commit) > +{ > +... > + po=po->next; po = po->next; > + } This seems to be identical (modulo tests) from the previous round, which I found a reasonable thing to do.