diff options
author | Sergey Organov <sorganov@gmail.com> | 2020-08-28 14:05:25 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-09-06 10:33:19 -0700 |
commit | a7b94309406c8f713a061ca8b930179483b12619 (patch) | |
tree | d58b4d20f54acbb55dd28d1e52b964d59d3e391d /log-tree.c | |
parent | 3a238e539bcdfe3f9eb5010fd218640c1b499f7a (diff) | |
download | git-a7b94309406c8f713a061ca8b930179483b12619.tar.gz |
log_tree_diff: get rid of code duplication for first_parent_only
Handle first_parent_only by breaking from generic loop early
rather than by duplicating (part of) the loop body.
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 | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/log-tree.c b/log-tree.c index 55a68d0c61..c01932fa72 100644 --- a/log-tree.c +++ b/log-tree.c @@ -922,21 +922,10 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log return 0; else if (opt->combine_merges) return do_diff_combined(opt, commit); - else if (opt->first_parent_only) { - /* - * Generate merge log entry only for the first - * parent, showing summary diff of the others - * we merged _in_. - */ - parse_commit_or_die(parents->item); - diff_tree_oid(get_commit_tree_oid(parents->item), - oid, "", &opt->diffopt); - log_tree_diff_flush(opt); - return !opt->loginfo; + else if (!opt->first_parent_only) { + /* If we show multiple diffs, show the parent info */ + log->parent = parents->item; } - - /* If we show individual diffs, show the parent info */ - log->parent = parents->item; } showed_log = 0; @@ -952,7 +941,7 @@ static int log_tree_diff(struct rev_info *opt, struct commit *commit, struct log /* Set up the log info for the next parent, if any.. */ parents = parents->next; - if (!parents) + if (!parents || opt->first_parent_only) break; log->parent = parents->item; opt->loginfo = log; |