diff options
author | Sergey Organov <sorganov@gmail.com> | 2020-12-21 18:19:46 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-12-21 13:47:31 -0800 |
commit | 1a2c4d80501c50fbe96cc0be096273703a5c0d16 (patch) | |
tree | 51d730f3d84d0c21960f28a3dfeaa41597d88cac /log-tree.c | |
parent | diff-merges: fix -m to properly override -c/--cc (diff) | |
download | tgif-1a2c4d80501c50fbe96cc0be096273703a5c0d16.tar.xz |
diff-merges: split 'ignore_merges' field
'ignore_merges' was 3-way field that served two distinct purposes that
we now assign to 2 new independent flags: 'separate_merges', and
'explicit_diff_merges'.
'separate_merges' tells that we need to output diff format containing
separate diff for every parent (as opposed to 'combine_merges').
'explicit_diff_merges' tells that at least one of diff-merges options
has been explicitly specified on the command line, so no defaults
should apply.
Signed-off-by: Sergey Organov <sorganov@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'log-tree.c')
-rw-r--r-- | log-tree.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/log-tree.c b/log-tree.c index 3fdc0fc64b..f9385b1dae 100644 --- a/log-tree.c +++ b/log-tree.c @@ -918,14 +918,15 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log /* More than one parent? */ if (parents->next) { - if (opt->ignore_merges) - return 0; - else if (opt->combine_merges) + if (opt->combine_merges) return do_diff_combined(opt, commit); - else if (!opt->first_parent_merges) { - /* If we show multiple diffs, show the parent info */ - log->parent = parents->item; - } + if (opt->separate_merges) { + if (!opt->first_parent_merges) { + /* Show parent info for multiple diffs */ + log->parent = parents->item; + } + } else + return 0; } showed_log = 0; |