Ye Xiaolong <xiaolong.ye@xxxxxxxxx> writes: > I narrowed down the problem to revision walk, if users specify the commit range > via "Z..C" pattern, the first prepare_revision_walk function called in > cmd_format_patch would mark all parents (ancestors) of Z to be uninteresting, > thus the next revision walk in prepare_bases wouldn't be able to reach > prerequisite patches, one quick solution I can think of is to clear > UNINTERESTING flag in reset_revision_walk, like below: > > void reset_revision_walk(void) > { > clear_object_flags(SEEN | ADDED | SHOWN| UNINTERESTING); > } When you are done with objects that are UNINTERESTING in your application (i.e. only when "format-patch" is told to compute list of prereq patches by doing an extra revision walk), your application can call clear_object_flags() on the flags you are done with, I would think. But the current callers of reset_revision_walk() do not expect any flags other than the ones that are used to keep track of the traversal state, so it is likely you will break them if you suddenly started to clear flags randomly.