Currently, diffs are computed by seeing if a tree / blob node is different in any of the parents of the commit. Instead, the node should only be considered changed in the commit if it is different from the corresponding node in all of the parent commits. (For a commit with a single parent, this amounts to the same thing. But for merge commits, if the file was changed in one branch but was not touched in the other branch and there are thus no conflicts, then it wasn't really changed in the merge commit.)
This doesn't affect SVN, and probably doesn't affect Mercurial, due to the way they do branching, but Mercurial should be confirmed that it will behave well with this new logic.
Diff: