Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.kernel.org/pub/scm/git/git.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Organov <sorganov@gmail.com>2020-12-21 18:19:46 +0300
committerJunio C Hamano <gitster@pobox.com>2020-12-22 00:47:31 +0300
commit1a2c4d80501c50fbe96cc0be096273703a5c0d16 (patch)
tree51d730f3d84d0c21960f28a3dfeaa41597d88cac /log-tree.c
parent6fc944d8956bf75bf2e52a871c02b71b4f9dfcba (diff)
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.c15
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;