Jeff King <peff@xxxxxxxx> writes: >> > @@ -617,6 +618,8 @@ static struct commit_list *paint_down_to_common(struct commit *one, int n, struc >> > >> > one->object.flags |= PARENT1; >> > commit_list_insert_by_date(one, &list); >> > + if (!n) >> > + return list; >> > for (i = 0; i < n; i++) { >> > twos[i]->object.flags |= PARENT2; >> > commit_list_insert_by_date(twos[i], &list); > > This seems like an obvious optimization, but does it really have > anything to do with the patch at hand? The function picks one and paints it against all others, but the logic assumes there must be at least one other to paint against; otherwise the traversal will not ever find a node that is painted with both PARENT1 and PARENT2 to stop, leading us to traverse all the way down to root. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html