summaryrefslogtreecommitdiff
path: root/revision.c
diff options
context:
space:
mode:
authorDerrick Stolee <stolee@gmail.com>2019-05-21 13:59:53 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-05-28 17:39:49 (GMT)
commit1d8e31a3f63cbc8533bf763c6d4b89d8355769f0 (patch)
treedbaf6245d0a5eb2d531fc33eca635d3cc25036cb /revision.c
parent1b4d8827ff2303f2db209bb34614e53c98e82bd6 (diff)
downloadgit-1d8e31a3f63cbc8533bf763c6d4b89d8355769f0.zip
git-1d8e31a3f63cbc8533bf763c6d4b89d8355769f0.tar.gz
git-1d8e31a3f63cbc8533bf763c6d4b89d8355769f0.tar.bz2
revision: keep topo-walk free of unintersting commits
When updating the topo-order walk in b454241 (revision.c: generation-based topo-order algorithm, 2018-11-01), the logic was a huge rewrite of the walk logic. In that massive change, we accidentally included the UNINTERESTING commits in expand_topo_walk(). This means that a simple query like git rev-list --topo-order HEAD~1..HEAD will expand the topo walk for all commits reachable from HEAD, and not just one commit. This change should speed up these cases, but there is still a need for corrected commit-date for some A..B queries. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'revision.c')
-rw-r--r--revision.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/revision.c b/revision.c
index be6ccf5..621feb9 100644
--- a/revision.c
+++ b/revision.c
@@ -3265,6 +3265,9 @@ static void expand_topo_walk(struct rev_info *revs, struct commit *commit)
struct commit *parent = p->item;
int *pi;
+ if (parent->object.flags & UNINTERESTING)
+ continue;
+
if (parse_commit_gently(parent, 1) < 0)
continue;