On Fri, Oct 13, 2017 at 11:37:50AM -0400, Derrick Stolee wrote: > Thanks, Peff. This patch looks good to me. > > I tried a few other things like adding a flag DIFF_OPT_HAS_ANY_CHANGE next > to DIFF_OPT_HAS_CHANGES that we could check in diff_can_quit_early() but it > had side-effects that broke existing tests. From this exploration, it does > seem necessary to be aware of 'remove_empty_trees'. Keep in mind that the regular diff_change callbacks already handle this case[1]. The file_change callbacks are specific to the revision machinery's pruning diff, and intentionally hold back the HAS_CHANGES flag. -Peff [1] I tried "git diff-tree --root -r --quiet 45546f17e" on the bomb repo, and it went quickly. Dropping --quiet makes it take a really long time.