Re: [PATCH v5 4/9] ref: add more strict checks for regular refs
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Oct 7, 2024, 06:58 UTC
- Message-ID
- <ZwOGnQSqmwALK-9z@pks.im>
- In-Reply-To
- <Zvj-sBX-0AFsuFDC@ArchLinux>
On Sun, Sep 29, 2024 at 03:16:00PM +0800, shejialuo wrote:
Show 16 quoted lines
> 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"?
Show 19 quoted lines
> @@ -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