Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> --- commit-reach.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/commit-reach.c b/commit-reach.c index ee374dce20..0fc3b1ac18 100644 --- a/commit-reach.c +++ b/commit-reach.c @@ -481,6 +481,7 @@ static enum contains_result contains_tag_algo(struct commit *candidate, enum contains_result result; uint32_t cutoff = GENERATION_NUMBER_INFINITY; const struct commit_list *p; + uint32_t num_walked = 0; for (p = want; p; p = p->next) { struct commit *c = p->item; @@ -493,12 +494,15 @@ static enum contains_result contains_tag_algo(struct commit *candidate, if (result != CONTAINS_UNKNOWN) return result; + trace2_region_enter("contains_tag_algo"); push_to_contains_stack(candidate, &contains_stack); while (contains_stack.nr) { struct contains_stack_entry *entry = &contains_stack.contains_stack[contains_stack.nr - 1]; struct commit *commit = entry->commit; struct commit_list *parents = entry->parents; + num_walked++; + if (!parents) { *contains_cache_at(cache, commit) = CONTAINS_NO; contains_stack.nr--; @@ -521,7 +525,13 @@ static enum contains_result contains_tag_algo(struct commit *candidate, } } free(contains_stack.contains_stack); - return contains_test(candidate, want, cache, cutoff); + + result = contains_test(candidate, want, cache, cutoff); + + trace2_data_intmax("contains_tag_algo", "num_walked", num_walked); + trace2_region_leave("contains_tag_algo"); + + return result; } int commit_contains(struct ref_filter *filter, struct commit *commit, -- 2.19.0.rc2