git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/2] index-pack: --fsck-objects to take an optional argument for fsck msgs

From
Junio C Hamano <gitster@pobox.com>
Date
Jan 25, 2024, 23:13 UTC
Message-ID
<xmqqplxpropf.fsf@gitster.g>
In-Reply-To
<074e0c7ab923777c66516ced18b4fd1dadf7677f.1706215884.git.gitgitgadget@gmail.com>
"John Cai via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: John Cai <johncai86@gmail.com>
>
> git-index-pack has a --strict mode that can take an optional argument to
"mode" -> "option", probably.
Show 6 quoted lines
> provide a list of fsck issues to change their severity. --fsck-objects
> does not have such a utility, which would be useful if one would like to
> be more lenient or strict on data integrity in a repository.
>
> Like --strict, Allow --fsck-objects to also take a list of fsck msgs to
> change the severity.
"Allow" -> "allow".
> This commit also removes the "For internal use only" note for
> --fsck-objects, and documents the option. This won't often be used by
> the normal end user, but it turns out it is useful for Git forges like
> GitLab.
"This commit also removes", "documents" -> "Remove", "document".
Show 5 quoted lines
> ---fsck-objects::
> -	For internal use only.
> +--fsck-objects[=<msg-ids>]::
> +	Instructs index-pack to check for broken objects instead of broken
> +	links. If `<msg-ids>` is passed, it should be  a comma-separated list of

Very much pleased to see an additional description that is written to clarify the difference between this option and the other --strict option. The original was totally unclear on this point, and it is very much appreciated.

The other option notices and dies upon seeing either a broken object or a dangling link. This one only diagnoses broken objects and does not care if the objects are connected. However, saying "instead of" here tempts readers to mistakenly think that the other one only checks links and this one only checks contents, which is not what we want to say. Perhaps "to check for broken objects, but unlike `--strict`, do not choke on broken links" or something?

Same comment on <msg-ids> as the previous step.
> +	`<msg-id>=<severity>` where `<msg-id>` and `<severity>` are used to
> +	change the severity of `fsck` errors, eg: `--strict="missingEmail=ignore,badTagName=ignore"`.
Same comment for "eg:" as before.
Show 11 quoted lines
> @@ -1785,8 +1785,9 @@ int cmd_index_pack(int argc, const char **argv, const char *prefix)
>  			} else if (!strcmp(arg, "--check-self-contained-and-connected")) {
>  				strict = 1;
>  				check_self_contained_and_connected = 1;
> -			} else if (!strcmp(arg, "--fsck-objects")) {
> +			} else if (skip_to_optional_arg(arg, "--fsck-objects", &arg)) {
>  				do_fsck_object = 1;
> +				fsck_set_msg_types(&fsck_options, arg);
>  			} else if (!strcmp(arg, "--verify")) {
>  				verify = 1;
>  			} else if (!strcmp(arg, "--verify-stat")) {

The implementation of this part looks quite obvious, once you see how "--strict[=<msgid>=<level>]" is implemented.

Looking good.
Thanks.
Previous: John Cai via GitGitGadgetNext: John Cai via GitGitGadget
Message 5 of 29 in “index-pack: fsck honor checks”
  1. 0/2 index-pack: fsck honor checksJohn Cai via GitGitGadget, Jan 25, 2024
  2. 1/2 index-pack: test and document --strict=<msg>John Cai via GitGitGadget, Jan 25, 2024
  3. Junio C HamanoJan 25, 2024
  4. 2/2 index-pack: --fsck-objects to take an optional argument for fsck msgsJohn Cai via GitGitGadget, Jan 25, 2024
  5. Junio C HamanoJan 25, 2024
  6. 0/2 index-pack: fsck honor checksJohn Cai via GitGitGadget, Jan 26, 2024
  7. 1/2 index-pack: test and document --strict=<msg>John Cai via GitGitGadget, Jan 26, 2024
  8. Junio C HamanoJan 26, 2024
  9. 2/2 index-pack: --fsck-objects to take an optional argument for fsck msgsJohn Cai via GitGitGadget, Jan 26, 2024
  10. Junio C HamanoJan 26, 2024
  11. John CaiJan 26, 2024
  12. 0/2 index-pack: fsck honor checksJohn Cai via GitGitGadget, Jan 26, 2024
  13. 1/2 index-pack: test and document --strict=<msg-id>=<severity>...John Cai via GitGitGadget, Jan 26, 2024
  14. 2/2 index-pack: --fsck-objects to take an optional argument for fsck msgsJohn Cai via GitGitGadget, Jan 26, 2024
  15. Junio C HamanoJan 26, 2024
  16. John CaiJan 26, 2024
  17. Patrick SteinhardtJan 29, 2024
  18. Junio C HamanoJan 29, 2024
  19. Jonathan TanJan 26, 2024
  20. John CaiJan 27, 2024
  21. Jonathan TanJan 31, 2024
  22. John CaiFeb 1, 2024
  23. Junio C HamanoFeb 1, 2024
  24. 0/2 index-pack: fsck honor checksJohn Cai via GitGitGadget, Feb 1, 2024
  25. 1/2 index-pack: test and document --strict=<msg-id>=<severity>...John Cai via GitGitGadget, Feb 1, 2024
  26. 2/2 index-pack: --fsck-objects to take an optional argument for fsck msgsJohn Cai via GitGitGadget, Feb 1, 2024
  27. SZEDER GáborMar 8, 2024
  28. John CaiMar 9, 2024
  29. Christian CouderFeb 2, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.