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>
This commit is contained in:
Patrick Steinhardt 2024-06-14 08:50:28 +02:00 committed by Junio C Hamano
parent e7da938570
commit 36026a0f30
2 changed files with 7 additions and 8 deletions

8
refs.h
View file

@ -2,21 +2,15 @@
#define REFS_H #define REFS_H
#include "commit.h" #include "commit.h"
#include "repository.h"
struct object_id; struct object_id;
struct ref_store; struct ref_store;
struct repository;
struct strbuf; struct strbuf;
struct string_list; struct string_list;
struct string_list_item; struct string_list_item;
struct worktree; 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); 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); const char *ref_storage_format_to_name(enum ref_storage_format ref_storage_format);

View file

@ -1,7 +1,6 @@
#ifndef REPOSITORY_H #ifndef REPOSITORY_H
#define REPOSITORY_H #define REPOSITORY_H
#include "refs.h"
#include "strmap.h" #include "strmap.h"
struct config_set; struct config_set;
@ -27,6 +26,12 @@ enum fetch_negotiation_setting {
FETCH_NEGOTIATION_NOOP, FETCH_NEGOTIATION_NOOP,
}; };
enum ref_storage_format {
REF_STORAGE_FORMAT_UNKNOWN,
REF_STORAGE_FORMAT_FILES,
REF_STORAGE_FORMAT_REFTABLE,
};
struct repo_settings { struct repo_settings {
int initialized; int initialized;