diff options
Diffstat (limited to 'refs/ref-cache.c')
-rw-r--r-- | refs/ref-cache.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/refs/ref-cache.c b/refs/ref-cache.c index 32afd8a40b..a372a00941 100644 --- a/refs/ref-cache.c +++ b/refs/ref-cache.c @@ -1,5 +1,7 @@ -#include "../cache.h" +#include "../git-compat-util.h" +#include "../hash.h" #include "../refs.h" +#include "../repository.h" #include "refs-internal.h" #include "ref-cache.h" #include "../iterator.h" @@ -409,7 +411,8 @@ static int cache_ref_iterator_advance(struct ref_iterator *ref_iterator) if (level->prefix_state == PREFIX_WITHIN_DIR) { entry_prefix_state = overlaps_prefix(entry->name, iter->prefix); - if (entry_prefix_state == PREFIX_EXCLUDES_DIR) + if (entry_prefix_state == PREFIX_EXCLUDES_DIR || + (entry_prefix_state == PREFIX_WITHIN_DIR && !(entry->flag & REF_DIR))) continue; } else { entry_prefix_state = level->prefix_state; |