Signed-off-by: Derrick Stolee <dsto...@microsoft.com>
---
 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

Reply via email to