On Sun, Sep 29, 2024 at 03:16:00PM +0800, shejialuo wrote: > diff --git a/Documentation/fsck-msgids.txt b/Documentation/fsck-msgids.txt > index 22c385ea22..e310b5bce9 100644 > --- a/Documentation/fsck-msgids.txt > +++ b/Documentation/fsck-msgids.txt > @@ -179,6 +179,14 @@ > `unknownType`:: > (ERROR) Found an unknown object type. > > +`unofficialFormattedRef`:: > + (INFO) The content of a loose ref file is not in the official > + format such as not having a LF at the end or having trailing > + garbage. As valid implementations of Git never created such a > + loose ref file, it may become an error in the future. Report > + to the git@xxxxxxxxxxxxxxx mailing list if you see this error, > + as we need to know what tools created such a file. > + I find "unofficial" to be a tad weird. Do we rather want to say something like "badRefTrailingGarbage"? > @@ -3541,6 +3546,21 @@ static int files_fsck_refs_content(struct ref_store *ref_store, > goto cleanup; > } > > + if (!(type & REF_ISSYMREF)) { > + if (!*trailing) { > + ret = fsck_report_ref(o, &report, > + FSCK_MSG_UNOFFICIAL_FORMATTED_REF, > + "misses LF at the end"); > + goto cleanup; > + } > + if (*trailing != '\n' || *(trailing + 1)) { > + ret = fsck_report_ref(o, &report, > + FSCK_MSG_UNOFFICIAL_FORMATTED_REF, > + "has trailing garbage: '%s'", trailing); > + goto cleanup; > + } > + } > + I think we should discern these two error cases and provide different message IDs. Patrick