X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=revision.c;h=35eca4a36185b1c5c40245748d0004fdaf0f6c00;hb=e481b1d8db9947681a5c124545ef06951f42155d;hp=ce24ad9a8df5589f86fb8974d3784d9a7b7f1960;hpb=adc542353199bdc0b9b1ed5d03cf881b7efaff6e;p=git.git diff --git a/revision.c b/revision.c index ce24ad9a8..35eca4a36 100644 --- a/revision.c +++ b/revision.c @@ -1664,7 +1664,7 @@ static inline int want_ancestry(struct rev_info *revs) return (revs->rewrite_parents || revs->children.name); } -enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit) +enum commit_action get_commit_action(struct rev_info *revs, struct commit *commit) { if (commit->object.flags & SHOWN) return commit_ignore; @@ -1692,12 +1692,23 @@ enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit) if (!commit->parents || !commit->parents->next) return commit_ignore; } - if (want_ancestry(revs) && rewrite_parents(revs, commit) < 0) - return commit_error; } return commit_show; } +enum commit_action simplify_commit(struct rev_info *revs, struct commit *commit) +{ + enum commit_action action = get_commit_action(revs, commit); + + if (action == commit_show && + !revs->show_all && + revs->prune && revs->dense && want_ancestry(revs)) { + if (rewrite_parents(revs, commit) < 0) + return commit_error; + } + return action; +} + static struct commit *get_revision_1(struct rev_info *revs) { if (!revs->commits)