diff options
| author | Patrick Steinhardt <ps@pks.im> | 2026-01-12 10:02:59 +0100 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2026-01-12 06:55:41 -0800 |
| commit | ae38c3a359f4834d27f511f1fa9b982f5ad55c6a (patch) | |
| tree | 81aa236a3eeed7938adecddfc3fbf32b4758b2ab | |
| parent | dcecffb616762893c44f98d556493144edbcd498 (diff) | |
| download | git-ae38c3a359f4834d27f511f1fa9b982f5ad55c6a.tar.xz | |
refs/files: introduce function to perform normal ref checks
In a subsequent commit we'll introduce new generic checks for direct
refs. These checks will be independent of the actual backend.
Introduce a new function `refs_fsck_ref()` that will be used for this
purpose. At the current point in time it's still empty, but it will get
populated in a subsequent commit.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | refs.c | 7 | ||||
| -rw-r--r-- | refs.h | 8 | ||||
| -rw-r--r-- | refs/files-backend.c | 2 |
3 files changed, 17 insertions, 0 deletions
@@ -320,6 +320,13 @@ int check_refname_format(const char *refname, int flags) return check_or_sanitize_refname(refname, flags, NULL); } +int refs_fsck_ref(struct ref_store *refs UNUSED, struct fsck_options *o UNUSED, + struct fsck_ref_report *report UNUSED, + const char *refname UNUSED, const struct object_id *oid UNUSED) +{ + return 0; +} + int refs_fsck_symref(struct ref_store *refs UNUSED, struct fsck_options *o, struct fsck_ref_report *report, const char *refname UNUSED, const char *target) @@ -656,6 +656,14 @@ int check_refname_format(const char *refname, int flags); struct fsck_ref_report; /* + * Perform generic checks for a specific direct ref. This function is + * expected to be called by the ref backends for every symbolic ref. + */ +int refs_fsck_ref(struct ref_store *refs, struct fsck_options *o, + struct fsck_ref_report *report, + const char *refname, const struct object_id *oid); + +/* * Perform generic checks for a specific symref target. This function is * expected to be called by the ref backends for every symbolic ref. */ diff --git a/refs/files-backend.c b/refs/files-backend.c index 687c26ddcb..240d3c3b26 100644 --- a/refs/files-backend.c +++ b/refs/files-backend.c @@ -3833,6 +3833,8 @@ static int files_fsck_refs_content(struct ref_store *ref_store, "has trailing garbage: '%s'", trailing); goto cleanup; } + + ret = refs_fsck_ref(ref_store, o, &report, target_name, &oid); } else { ret = files_fsck_symref_target(ref_store, o, &report, target_name, &referent, 0); |
