aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--refs.c5
-rw-r--r--refs/files-backend.c11
2 files changed, 9 insertions, 7 deletions
diff --git a/refs.c b/refs.c
index d1c781d94..f0685c925 100644
--- a/refs.c
+++ b/refs.c
@@ -1259,6 +1259,11 @@ struct ref_iterator *refs_ref_iterator_begin(
{
struct ref_iterator *iter;
+ if (ref_paranoia < 0)
+ ref_paranoia = git_env_bool("GIT_REF_PARANOIA", 0);
+ if (ref_paranoia)
+ flags |= DO_FOR_EACH_INCLUDE_BROKEN;
+
iter = refs->be->iterator_begin(refs, prefix, flags);
/*
diff --git a/refs/files-backend.c b/refs/files-backend.c
index dbfd03f98..5de36fc33 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -1074,15 +1074,12 @@ static struct ref_iterator *files_ref_iterator_begin(
struct ref_iterator *loose_iter, *packed_iter;
struct files_ref_iterator *iter;
struct ref_iterator *ref_iterator;
+ unsigned int required_flags = REF_STORE_READ;
- if (ref_paranoia < 0)
- ref_paranoia = git_env_bool("GIT_REF_PARANOIA", 0);
- if (ref_paranoia)
- flags |= DO_FOR_EACH_INCLUDE_BROKEN;
+ if (!(flags & DO_FOR_EACH_INCLUDE_BROKEN))
+ required_flags |= REF_STORE_ODB;
- refs = files_downcast(ref_store,
- REF_STORE_READ | (ref_paranoia ? 0 : REF_STORE_ODB),
- "ref_iterator_begin");
+ refs = files_downcast(ref_store, required_flags, "ref_iterator_begin");
iter = xcalloc(1, sizeof(*iter));
ref_iterator = &iter->base;