Fix long standing inconsistency between -c/--cc that do imply -p, on one side, and -m that did not imply -p, on the other side. Only the last patch is the actual functional change. The rest of patches are additional tests and refactorings that are not expected to alter existing behaviors. After these patches git log -m produces diffs without need to provide -p as well, that improves both consistency and usability. It gets even more useful if one sets "log.diffMerges" configuration variable to "first-parent" to force -m produce usual diff with respect to first parent only. These series, however, don't change behavior when specific diff format is explicitly provided on the command-line, so that commands like git log -m --raw git log -m --stat are not affected. Exact historical semantics of -m is still provided by --diff-merges=separate. Updates in v2: * Fix style and typos in descriptions Updates in v1: * Stop parsing distinct diff-index options beforehand, as it could cause unexpected behaviors. Implement different strategy to avoid clash of diff-index "-m" and diff-merges "-m". * Added tests for "git log -m --raw" and "git log -m". Sergey Organov (9): t4013: test that "-m" alone has no effect in "git log" t4013: test "git log -m --raw" t4013: test "git log -m --stat" t4013: test "git diff-index -m" diff-merges: move specific diff-index "-m" handling to diff-index git-svn: stop passing "-m" to "git rev-list" stash list: stop passing "-m" to "git log" diff-merges: rename "combined_imply_patch" to "merges_imply_patch" diff-merges: let "-m" imply "-p" Documentation/diff-options.txt | 8 ++-- builtin/diff-index.c | 9 +++++ builtin/stash.c | 2 +- diff-merges.c | 36 +++++++++-------- diff-merges.h | 2 + perl/Git/SVN.pm | 2 +- revision.h | 2 +- t/t3903-stash.sh | 2 +- t/t4013-diff-various.sh | 23 +++++++++++ t/t4013/diff.log_-m_--raw_master | 61 ++++++++++++++++++++++++++++ t/t4013/diff.log_-m_--stat_master | 66 +++++++++++++++++++++++++++++++ 11 files changed, 188 insertions(+), 25 deletions(-) create mode 100644 t/t4013/diff.log_-m_--raw_master create mode 100644 t/t4013/diff.log_-m_--stat_master Interdiff against v1: -- 2.25.1