summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorKevin Bracey <kevin@bracey.fi>2013-05-16 15:32:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2013-05-16 18:51:10 (GMT)
commit141efdba57b1769fc60ff9a3925afbc6af398faf (patch)
tree327e0be1f543a2c04219c27b3130aa80860bdeb8 /revision.c
parentbf3418b08bac89902a5f6c70f8695f148df99828 (diff)
downloadgit-141efdba57b1769fc60ff9a3925afbc6af398faf.zip
git-141efdba57b1769fc60ff9a3925afbc6af398faf.tar.gz
git-141efdba57b1769fc60ff9a3925afbc6af398faf.tar.bz2
revision.c: make default history consider bottom commits
Previously, the default history treated bottom commits the same as any other UNINTERESTING commit, which could force it down side branches. Consider the following history: *A--*B---D--*F * marks !TREESAME parent paths \ /* `-C-' When requesting "B..F", B is UNINTERESTING but TREESAME to D. C is !UNINTERESTING. So default following would go from D into the irrelevant side branch C to A, rather than to B. Note also that if there had been an extra !UNINTERESTING commit B1 between B and D, it wouldn't have gone down C. Change the default following to test relevant_commit() instead of !UNINTERESTING, so it can proceed straight from D to B, thus finishing the traversal of that path. Signed-off-by: Kevin Bracey <kevin@bracey.fi> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/revision.c b/revision.c
index edb7e1c..914ac78 100644
--- a/revision.c
+++ b/revision.c
@@ -684,7 +684,7 @@ static void try_to_simplify_commit(struct rev_info *revs, struct commit *commit)
sha1_to_hex(p->object.sha1));
switch (rev_compare_tree(revs, p, commit)) {
case REV_TREE_SAME:
- if (!revs->simplify_history || (p->object.flags & UNINTERESTING)) {
+ if (!revs->simplify_history || !relevant_commit(p)) {
/* Even if a merge with an uninteresting
* side branch brought the entire change
* we are interested in, we do not want