From: Patrick Steinhardt Date: Mon, 12 Jan 2026 09:02:59 +0000 (+0100) Subject: refs/files: introduce function to perform normal ref checks X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ae38c3a359f4834d27f511f1fa9b982f5ad55c6a;p=thirdparty%2Fgit.git 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 Signed-off-by: Junio C Hamano --- diff --git a/refs.c b/refs.c index 739bf9fefc..4fc1317cb3 100644 --- a/refs.c +++ b/refs.c @@ -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) diff --git a/refs.h b/refs.h index d91fcb2d2f..f0abfa1d93 100644 --- a/refs.h +++ b/refs.h @@ -655,6 +655,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);