RE: [PATCH v3 25/32] diff-merges: let new options enable diff without -p
From: Felipe Contreras <hidden>
Date: 2020-12-21 18:41:53
From: Felipe Contreras <hidden>
Date: 2020-12-21 18:41:53
Sergey Organov wrote:
diff --git a/log-tree.c b/log-tree.c index f9385b1dae6f..9f50a81e537e 100644 --- a/log-tree.c +++ b/log-tree.c@@ -899,15 +899,21 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log int showed_log; struct commit_list *parents; struct object_id *oid; + int is_merge; + int all_need_diff = opt->diff || opt->diffopt.flags.exit_with_status; - if (!opt->diff && !opt->diffopt.flags.exit_with_status) + if (!all_need_diff && !opt->merges_need_diff) return 0; parse_commit_or_die(commit); oid = get_commit_tree_oid(commit); - /* Root commit? */ parents = get_saved_parents(opt, commit); + is_merge = parents && parents->next; + if (!is_merge && !all_need_diff) + return 0; + + /* Root commit? */ if (!parents) { if (opt->show_root_diff) { diff_root_tree_oid(oid, "", &opt->diffopt);
FWIW this logic does make sense to me. -- Felipe Contreras