On Tue, Aug 18, 2009 at 04:53:45PM -0700, Junio C Hamano wrote: > Adam Simpkins <simpkins@xxxxxxxxxxxx> writes: > > > - return (commit->object.flags & (UNINTERESTING | TREESAME)) ? 0 : 1; > > + return simplify_commit(graph->revs, commit) == commit_show; > > If you do this after revision.c finished the traversal (e.g. "limited" > case), I think it should be Ok. > > But calling simplify_commit() while the traversal is still in progress is > asking for trouble. I do not recall the details anymore but when I tried > to make the "simplify-merges" algorithm incremental, I had seen funny > breakage caused by calling simplify_commit() twice on the same commit. > > I suspect that this change will break the primary traversal. The --graph option always enables revs->topo_order, which in turn enables revs->limited, so this should always be after limit_list() has already been called. However, it looks like the call to rewrite_parents() is the only modifying operation in simplify_commit(), and all the rest can easily be split out into a separate helper function. I'll submit another version of the patch that makes the non-modifying simplify_commit() behavior available as a separate function. -- Adam Simpkins simpkins@xxxxxxxxxxxx -- 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