summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2024-06-14 08:50:28 +0200
committerJunio C Hamano <gitster@pobox.com>2024-06-14 19:26:33 +0200
commit36026a0f30692e341f934f58cd1f780432e9d58b (patch)
tree8c6ef539b62b4725e0d41b783f8d22065ba853d1
parentglobal: introduce `USE_THE_REPOSITORY_VARIABLE` macro (diff)
downloadgit-36026a0f30692e341f934f58cd1f780432e9d58b.tar.xz
git-36026a0f30692e341f934f58cd1f780432e9d58b.zip
refs: avoid include cycle with "repository.h"
There is an include cycle between "refs.h" and "repository.h" via "commit.h", "object.h" and "hash.h". This has the effect that several definitions of structs and enums will not be visible once we merge "hash-ll.h" back into "hash.h" in the next commit. The only reason that "repository.h" includes "refs.h" is the definition of `enum ref_storage_format`. Move it into "repository.h" and have "refs.h" include "repository.h" instead to fix the cycle. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--refs.h8
-rw-r--r--repository.h7
2 files changed, 7 insertions, 8 deletions
diff --git a/refs.h b/refs.h
index 76d25df4de..a9716e5d25 100644
--- a/refs.h
+++ b/refs.h
@@ -2,21 +2,15 @@
#define REFS_H
#include "commit.h"
+#include "repository.h"
struct object_id;
struct ref_store;
-struct repository;
struct strbuf;
struct string_list;
struct string_list_item;
struct worktree;
-enum ref_storage_format {
- REF_STORAGE_FORMAT_UNKNOWN,
- REF_STORAGE_FORMAT_FILES,
- REF_STORAGE_FORMAT_REFTABLE,
-};
-
enum ref_storage_format ref_storage_format_by_name(const char *name);
const char *ref_storage_format_to_name(enum ref_storage_format ref_storage_format);
diff --git a/repository.h b/repository.h
index 29727edec6..6ce6826c26 100644
--- a/repository.h
+++ b/repository.h
@@ -1,7 +1,6 @@
#ifndef REPOSITORY_H
#define REPOSITORY_H
-#include "refs.h"
#include "strmap.h"
struct config_set;
@@ -27,6 +26,12 @@ enum fetch_negotiation_setting {
FETCH_NEGOTIATION_NOOP,
};
+enum ref_storage_format {
+ REF_STORAGE_FORMAT_UNKNOWN,
+ REF_STORAGE_FORMAT_FILES,
+ REF_STORAGE_FORMAT_REFTABLE,
+};
+
struct repo_settings {
int initialized;