Jeff King <peff@xxxxxxxx> writes: > So I dunno. A sensible rule to me is "iff -p would show a diff header, > then --stat should mention it". True but tricky (you need a better definition of "a diff header"). In addition to a new and deleted file, does a file whose executable bit was flipped need mention? If so, then "diff --git" is the diff header in the above. Otherwise "@@ ... @@", iow, "iff -p would show any hunk". I think the patch implements the latter, which I think is sensible. > + /* > + * Omit diffstats where nothing changed. Even if > + * !same_contents, this might be the case due to ignoring > + * whitespace changes, etc. > + * > + * But note that we special-case additions and deletions, > + * as adding an empty file, for example, is still of interest. > + */ > + if (DIFF_FILE_VALID(one) && DIFF_FILE_VALID(two)) { > + struct diffstat_file *file = > + diffstat->files[diffstat->nr - 1]; > + if (!file->added && !file->deleted) { > + free_diffstat_file(file); > + diffstat->nr--; > + } > + } > }