On Mon, Oct 21, 2024 at 09:34:47PM +0800, shejialuo wrote: > diff --git a/refs/files-backend.c b/refs/files-backend.c > index 24ad73faba..2861980bdd 100644 > --- a/refs/files-backend.c > +++ b/refs/files-backend.c > @@ -3505,6 +3505,48 @@ typedef int (*files_fsck_refs_fn)(struct ref_store *ref_store, > const char *target_name, > struct dir_iterator *iter); > > +static int files_fsck_refs_content(struct ref_store *ref_store, > + struct fsck_options *o, > + const char *target_name, > + struct dir_iterator *iter) > +{ > + struct strbuf ref_content = STRBUF_INIT; > + struct strbuf referent = STRBUF_INIT; > + struct fsck_ref_report report = { 0 }; > + unsigned int type = 0; > + int failure_errno = 0; > + struct object_id oid; > + int ret = 0; > + > + report.path = target_name; > + > + if (S_ISLNK(iter->st.st_mode)) > + goto cleanup; > + > + if (strbuf_read_file(&ref_content, iter->path.buf, 0) < 0) { > + ret = fsck_report_ref(o, &report, > + FSCK_MSG_BAD_REF_CONTENT, > + "cannot read ref file '%s': (%s)", > + iter->path.buf, strerror(errno)); > + goto cleanup; > + } Let's drop the braces around `(%s)`, we don't print such braces in `warning_errno()` or `die_errno()`, either. Patrick