Re: [PATCH v5 4/9] ref: add more strict checks for regular refs
From: Patrick Steinhardt <hidden>
Date: 2024-10-07 06:58:41
On Sun, Sep 29, 2024 at 03:16:00PM +0800, shejialuo wrote:
quoted hunk ↗ jump to hunk
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@vger.kernel.org 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"?
quoted hunk ↗ jump to hunk
@@ -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