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

Re: [PATCH v4 00/19] Introduce an internal API to interact with the fsck machinery

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Feb 4, 2015, 11:02 UTC
Message-ID
<d268ca769c3813cdb600672c40e2c484@www.dscho.org>
In-Reply-To
<xmqqegq6nxmh.fsf@gitster.dls.corp.google.com>
Hi Junio,
On 2015-02-04 04:50, Junio C Hamano wrote:
Show 16 quoted lines
> Johannes Schindelin <johannes.schindelin@gmx.de> writes:
> 
>>> [fsck "level"]
>>>         missingAuthor = error
>>>
>>> , which looks funny. "level" is a constant, so it seems superfluous.
> 
> Yes, it is superfluous, but is one way to avoid the ambiguity with
> "skiplist".  Structuring it like this would not be so bad, either,
> though.
> 
> 	[fsck]
>         	error = missingAuthor[, other kinds of errors...]
> 
> A small set like {ignore, warn, error} is easily maintainable not to
> conflict with "skiplist" and others.
But you augmented the case against the {ignore, warn, error} structure with this yourself:
Show 12 quoted lines
> With "fsck.error=missingAuthor[,other kinds]", you would
> instead have to do a bit more silly post-processing
> 
> 	git config -l | sed -ne '
>         	/^fsck\./{
> 			# make it "var=,token1,token2,token3,"
> 			s/=/=,/
>                         s/$/,/
>                         s/[ 	]*//g
> 			s|^fsck\.\([^=]*\)=.*,missingAuthor,.*|\1|p
> 		}
> 	' | tail -n 1
If a script to determine the current state of affairs is already convoluted, how complicated would it be for users of this feature? No, let's go with Michael's suggestion and have a much more elegant (read: easy to grasp) configuration.
I see that the extra ".level." is universally frowned on, and therefore am convinced that it would be bad to add it.
As to the conflict with "skiplist", by your own argument ("small set ... is easily maintainable") it is not a problem at all.
Show 8 quoted lines
>> This becomes important when I want to catch obvious problems such as
>> fsck.missingautor': if I have an extra '.level', I can be certain that
>> it is a typo rather than a config setting unrelated to the severity
>> levels.
> 
> "[fsck] error = missingAutor" would let you catch the typo in a similar
> way with the same context clue, so this does not decide which is
> better, either.
No, you are correct, this does not decide it. What decides it that `fsck.missingAuthor = error` is better than `fsck.error = missingAuthor` is that the user does not need to wrap her head around the significance of the order of mutually overriding `error`, `warn` and `ignore` settings in the former.
As to the typo handling, you are absolutely correct that it is easy to handle "skiplist" first and then expect all other fsck.* settings (or receive.fsck.* settings) to match a message ID. To make things even smoother, I think it would make most sense to only *warn* about typos instead of *erroring out*.
Show 5 quoted lines
> I wonder if
> 
> 	[fsckError]
>         	missingAuthor = error
>                 missingTagger = warn
Hmm. I am not so sure that `fsckError` is the correct term. After all, we can also upgrade warnings to errors, not only demote errors to warnings. So I guess the `fsck.*` naming scheme is not so bad after all!
Show 10 quoted lines
>>>> Unfortunately, I have to pass the `receive.fsck.*` settings from
>>>> `git-receive-pack` to `git-unpack-objects` or `git-index-pack` via the
>>>> command-line, because it is `git-receive-pack` that consumes the config
>>>> setting, but it is one of `git-unpack-objects` and `git-index-pack` that
>>>> has to act on it...
> 
> But receive-pack at some point decides what, if anything, needs to
> be passed when invoking unpack-objects, or index-pack, no?  Why is
> it hard to pass "-c var=val" at the beginning where it would have
> passed "--strictness=var=val" at the end?
It is not hard, it is just inelegant: 1) we would have to introduce a new function to handle the config settings in `unpack-objects`, 2) the command-line would be longer (for what benefit?), and 3) index-pack uses run_command() to launch the children [*1*] and wouldn't you find it super-ugly if that argv started with a "-c", "..."? I would.
We already have command-line handling in both index-pack and unpack-objects (and config handling only in the former), we already have --strict handling in particular, and arguably the severity levels are tightly connected to that --strict option that at least in my opinion it makes sense to understand that the severity levels are optional parameters to that command-line option.
So in short, I maintain that passing the options via the config mechanism would just make things more complicated, and in no way better.
Show 28 quoted lines
>>> Wouldn't that work automatically via the GIT_CONFIG_PARAMETERS
>>> mechanism? If I run
>>>
>>>     git -c foo.bar=baz $CMD
>>>
>>> , then git-$CMD is invoked with GIT_CONFIG_PARAMETERS set to
>>> "'foo.bar=baz'", which causes child processes to treat that value as a
>>> configuration setting. I don't have a lot of experience with this but I
>>> think it should do what you need.
>>
>> This is true, but please remember that the receive.fsck.* settings
>> should be heeded by index-pack/unpack-objects *only* if one of the
>> latter programs is called by receive-pack. It would therefore be a
>> little funny (or wrong, depending on your point of view) if, say,
>> index-pack would respect the receive.fsck.* settings.
> 
> That means it would be fine if receive-pack invokes (when it sees
> receive.fsck.severity=missingAuthor=error,missingTagger=warn config
> meant for it and was told with receive.fsckObjects to check the
> incoming objects) a command line like this:
> 
> 	git -c fsckError.missingAuthor=error \
>             -c fsckError.missingTagger=warn \
> 		index-pack $args...
> 
> (or whatever variable names and name structure we settle on).  And
> the index-pack command does not have to even know there are
> receive.fsck.* variables at all, no?
It does not know that at all already, so yes: I agree. It does not even need to know that those settings were config variables. Even better: it should not let config settings interfere with the settings receive-pack wants index-pack to use.
So there you have it, another reason why passing the levels via command-line options is conceptually much more sound than passing them via fake config settings.
> I think either way would be fine, as this communication is an internal implementation detail between receive-pack and index-pack and is not meant to be exposed to the end users anyway.
Yeah, I think we really used enough time to discuss something as unimportant as this detail.
Just to make sure: are you okay with passing CamelCased settings (e.g. `--strict=missingAuthor=warn,...`) as part of that internal communication between receive-pack and index-pack/unpack-objects? That is my preference by now.

Ciao, Dscho

Footnote *1*: https://github.com/msysgit/git/blob/c47d6ec67188cec2a782bc245aa7df4e3cbdbc01/builtin/receive-pack.c#L992-L1001
Previous: Junio C HamanoNext: Johannes Schindelin
Message 156 of 275 in “Introduce an internal API to interact with the fsck machinery”
  1. 00/18 Introduce an internal API to interact with the fsck machineryJohannes Schindelin, Dec 8, 2014
  2. 01/18 Introduce fsck optionsJohannes Schindelin, Dec 8, 2014
  3. Junio C HamanoDec 10, 2014
  4. Johannes SchindelinDec 22, 2014
  5. Junio C HamanoDec 22, 2014
  6. 02/18 Introduce identifiers for fsck messagesJohannes Schindelin, Dec 8, 2014
  7. 03/18 Provide a function to parse fsck message IDsJohannes Schindelin, Dec 8, 2014
  8. Junio C HamanoDec 10, 2014
  9. Johannes SchindelinDec 22, 2014
  10. 04/18 Offer a function to demote fsck errors to warningsJohannes Schindelin, Dec 8, 2014
  11. Junio C HamanoDec 10, 2014
  12. Johannes SchindelinDec 22, 2014
  13. Junio C HamanoDec 22, 2014
  14. Johannes SchindelinDec 22, 2014
  15. Junio C HamanoDec 22, 2014
  16. Johannes SchindelinDec 22, 2014
  17. Junio C HamanoDec 22, 2014
  18. Johannes SchindelinDec 23, 2014
  19. Junio C HamanoDec 23, 2014
  20. Johannes SchindelinDec 23, 2014
  21. Junio C HamanoDec 23, 2014
  22. Johannes SchindelinDec 23, 2014
  23. Junio C HamanoDec 23, 2014
  24. Johannes SchindelinDec 23, 2014
  25. 05/18 Allow demoting errors to warnings via receive.fsck.<key> = warnJohannes Schindelin, Dec 8, 2014
  26. Junio C HamanoDec 10, 2014
  27. Johannes SchindelinDec 22, 2014
  28. 06/18 fsck: report the ID of the error/warningJohannes Schindelin, Dec 8, 2014
  29. 07/18 Make fsck_ident() warn-friendlyJohannes Schindelin, Dec 8, 2014
  30. 08/18 Make fsck_commit() warn-friendlyJohannes Schindelin, Dec 8, 2014
  31. 09/18 fsck: handle multiple authors in commits speciallyJohannes Schindelin, Dec 8, 2014
  32. Junio C HamanoDec 10, 2014
  33. Johannes SchindelinDec 22, 2014
  34. 10/18 Make fsck_tag() warn-friendlyJohannes Schindelin, Dec 8, 2014
  35. 11/18 Add a simple test for receive.fsck.*Johannes Schindelin, Dec 8, 2014
  36. 12/18 Disallow demoting grave fsck errors to warningsJohannes Schindelin, Dec 8, 2014
  37. Junio C HamanoDec 10, 2014
  38. Johannes SchindelinDec 22, 2014
  39. 13/18 Optionally ignore specific fsck issues completelyJohannes Schindelin, Dec 8, 2014
  40. Junio C HamanoDec 10, 2014
  41. 14/18 fsck: allow upgrading fsck warnings to errorsJohannes Schindelin, Dec 8, 2014
  42. Junio C HamanoDec 10, 2014
  43. Johannes SchindelinDec 22, 2014
  44. Junio C HamanoDec 22, 2014
  45. Johannes SchindelinDec 22, 2014
  46. 15/18 Document the new receive.fsck.* options.Johannes Schindelin, Dec 8, 2014
  47. 16/18 fsck: support demoting errors to warningsJohannes Schindelin, Dec 8, 2014
  48. Junio C HamanoDec 10, 2014
  49. Johannes SchindelinDec 22, 2014
  50. Junio C HamanoDec 22, 2014
  51. Johannes SchindelinDec 22, 2014
  52. Junio C HamanoDec 22, 2014
  53. Johannes SchindelinDec 22, 2014
  54. Junio C HamanoDec 22, 2014
  55. Johannes SchindelinDec 23, 2014
  56. Junio C HamanoDec 23, 2014
  57. Johannes SchindelinDec 23, 2014
  58. Junio C HamanoDec 23, 2014
  59. Johannes SchindelinDec 23, 2014
  60. Junio C HamanoDec 23, 2014
  61. Johannes SchindelinDec 23, 2014
  62. Junio C HamanoDec 23, 2014
  63. Johannes SchindelinDec 23, 2014
  64. Junio C HamanoDec 23, 2014
  65. Johannes SchindelinDec 23, 2014
  66. Junio C HamanoDec 23, 2014
  67. Michael HaggertyJan 22, 2015
  68. Johannes SchindelinJan 22, 2015
  69. Johannes SchindelinJan 31, 2015
  70. Junio C HamanoDec 23, 2014
  71. 17/18 Introduce `git fsck --quick`Johannes Schindelin, Dec 8, 2014
  72. 18/18 git receive-pack: support excluding objects from fsck'ingJohannes Schindelin, Dec 8, 2014
  73. Junio C HamanoDec 10, 2014
  74. Johannes SchindelinDec 22, 2014
  75. Junio C HamanoDec 10, 2014
  76. 00/18 Introduce an internal API to interact with the fsck machineryJohannes Schindelin, Jan 19, 2015
  77. 01/18 fsck: Introduce fsck optionsJohannes Schindelin, Jan 19, 2015
  78. 02/18 fsck: Introduce identifiers for fsck messagesJohannes Schindelin, Jan 19, 2015
  79. 03/18 fsck: Provide a function to parse fsck message IDsJohannes Schindelin, Jan 19, 2015
  80. 04/18 fsck: Offer a function to demote fsck errors to warningsJohannes Schindelin, Jan 19, 2015
  81. Junio C HamanoJan 21, 2015
  82. Johannes SchindelinJan 21, 2015
  83. 05/18 fsck: Allow demoting errors to warnings via receive.fsck.warn = <key>Johannes Schindelin, Jan 19, 2015
  84. Junio C HamanoJan 21, 2015
  85. Johannes SchindelinJan 21, 2015
  86. Junio C HamanoJan 21, 2015
  87. Johannes SchindelinJan 22, 2015
  88. 06/18 fsck: Report the ID of the error/warningJohannes Schindelin, Jan 19, 2015
  89. 07/18 fsck: Make fsck_ident() warn-friendlyJohannes Schindelin, Jan 19, 2015
  90. Junio C HamanoJan 21, 2015
  91. 08/18 fsck: Make fsck_commit() warn-friendlyJohannes Schindelin, Jan 19, 2015
  92. 09/18 fsck: Handle multiple authors in commits speciallyJohannes Schindelin, Jan 19, 2015
  93. 10/18 fsck: Make fsck_tag() warn-friendlyJohannes Schindelin, Jan 19, 2015
  94. 11/18 fsck: Add a simple test for receive.fsck.*Johannes Schindelin, Jan 19, 2015
  95. Junio C HamanoJan 21, 2015
  96. Johannes SchindelinJan 21, 2015
  97. 12/18 fsck: Disallow demoting grave fsck errors to warningsJohannes Schindelin, Jan 19, 2015
  98. 13/18 fsck: Optionally ignore specific fsck issues completelyJohannes Schindelin, Jan 19, 2015
  99. 14/18 fsck: Allow upgrading fsck warnings to errorsJohannes Schindelin, Jan 19, 2015
  100. 15/18 fsck: Document the new receive.fsck.* options.Johannes Schindelin, Jan 19, 2015
  101. Eric SunshineJan 19, 2015
  102. Johannes SchindelinJan 20, 2015
  103. 16/18 fsck: Support demoting errors to warningsJohannes Schindelin, Jan 19, 2015
  104. 17/18 fsck: Introduce `git fsck --quick`Johannes Schindelin, Jan 19, 2015
  105. 18/18 fsck: git receive-pack: support excluding objects from fsck'ingJohannes Schindelin, Jan 19, 2015
  106. Junio C HamanoJan 21, 2015
  107. Johannes SchindelinJan 21, 2015
  108. Junio C HamanoJan 21, 2015
  109. Johannes SchindelinJan 21, 2015
  110. 00/19 Introduce an internal API to interact with the fsck machineryJohannes Schindelin, Jan 21, 2015
  111. 01/19 fsck: Introduce fsck optionsJohannes Schindelin, Jan 21, 2015
  112. 02/19 fsck: Introduce identifiers for fsck messagesJohannes Schindelin, Jan 21, 2015
  113. 03/19 fsck: Provide a function to parse fsck message IDsJohannes Schindelin, Jan 21, 2015
  114. 04/19 fsck: Offer a function to demote fsck errors to warningsJohannes Schindelin, Jan 21, 2015
  115. 05/19 fsck: Allow demoting errors to warnings via receive.fsck.warn = <key>Johannes Schindelin, Jan 21, 2015
  116. 06/19 fsck: Report the ID of the error/warningJohannes Schindelin, Jan 21, 2015
  117. 07/19 fsck: Make fsck_ident() warn-friendlyJohannes Schindelin, Jan 21, 2015
  118. 08/19 fsck: Make fsck_commit() warn-friendlyJohannes Schindelin, Jan 21, 2015
  119. 09/19 fsck: Handle multiple authors in commits speciallyJohannes Schindelin, Jan 21, 2015
  120. 10/19 fsck: Make fsck_tag() warn-friendlyJohannes Schindelin, Jan 21, 2015
  121. 11/19 fsck: Add a simple test for receive.fsck.*Johannes Schindelin, Jan 21, 2015
  122. 12/19 fsck: Disallow demoting grave fsck errors to warningsJohannes Schindelin, Jan 21, 2015
  123. 13/19 fsck: Optionally ignore specific fsck issues completelyJohannes Schindelin, Jan 21, 2015
  124. 14/19 fsck: Allow upgrading fsck warnings to errorsJohannes Schindelin, Jan 21, 2015
  125. 15/19 fsck: Document the new receive.fsck.* options.Johannes Schindelin, Jan 21, 2015
  126. 16/19 fsck: Support demoting errors to warningsJohannes Schindelin, Jan 21, 2015
  127. 17/19 fsck: Introduce `git fsck --quick`Johannes Schindelin, Jan 21, 2015
  128. 18/19 fsck: git receive-pack: support excluding objects from fsck'ingJohannes Schindelin, Jan 21, 2015
  129. 19/19 fsck: support ignoring objects in `git fsck` via fsck.skiplistJohannes Schindelin, Jan 21, 2015
  130. 00/19 Introduce an internal API to interact with the fsck machineryJohannes Schindelin, Jan 31, 2015
  131. 01/19 fsck: Introduce fsck optionsJohannes Schindelin, Jan 31, 2015
  132. 02/19 fsck: Introduce identifiers for fsck messagesJohannes Schindelin, Jan 31, 2015
  133. 03/19 fsck: Provide a function to parse fsck message IDsJohannes Schindelin, Jan 31, 2015
  134. 05/19 fsck: Allow demoting errors to warningsJohannes Schindelin, Jan 31, 2015
  135. 04/19 fsck: Offer a function to demote fsck errors to warningsJohannes Schindelin, Jan 31, 2015
  136. 11/19 fsck: Add a simple test for receive.fsck.severityJohannes Schindelin, Jan 31, 2015
  137. 12/19 fsck: Disallow demoting grave fsck errors to warningsJohannes Schindelin, Jan 31, 2015
  138. 07/19 fsck: Make fsck_ident() warn-friendlyJohannes Schindelin, Jan 31, 2015
  139. 08/19 fsck: Make fsck_commit() warn-friendlyJohannes Schindelin, Jan 31, 2015
  140. 10/19 fsck: Make fsck_tag() warn-friendlyJohannes Schindelin, Jan 31, 2015
  141. 15/19 fsck: Document the new receive.fsck.severity options.Johannes Schindelin, Jan 31, 2015
  142. 09/19 fsck: Handle multiple authors in commits speciallyJohannes Schindelin, Jan 31, 2015
  143. 14/19 fsck: Allow upgrading fsck warnings to errorsJohannes Schindelin, Jan 31, 2015
  144. 06/19 fsck: Report the ID of the error/warningJohannes Schindelin, Jan 31, 2015
  145. 13/19 fsck: Optionally ignore specific fsck issues completelyJohannes Schindelin, Jan 31, 2015
  146. 16/19 fsck: Support demoting errors to warningsJohannes Schindelin, Jan 31, 2015
  147. 17/19 fsck: Introduce `git fsck --quick`Johannes Schindelin, Jan 31, 2015
  148. 18/19 fsck: git receive-pack: support excluding objects from fsck'ingJohannes Schindelin, Jan 31, 2015
  149. 19/19 fsck: support ignoring objects in `git fsck` via fsck.skiplistJohannes Schindelin, Jan 31, 2015
  150. Johannes SchindelinFeb 2, 2015
  151. Michael HaggertyFeb 2, 2015
  152. Johannes SchindelinFeb 2, 2015
  153. Michael HaggertyFeb 3, 2015
  154. Johannes SchindelinFeb 3, 2015
  155. Junio C HamanoFeb 4, 2015
  156. Johannes SchindelinFeb 4, 2015
  157. 00/19 Introduce an internal API to interact with the fsck machineryJohannes Schindelin, Jun 18, 2015
  158. 01/19 fsck: Introduce fsck optionsJohannes Schindelin, Jun 18, 2015
  159. 02/19 fsck: Introduce identifiers for fsck messagesJohannes Schindelin, Jun 18, 2015
  160. 03/19 fsck: Provide a function to parse fsck message IDsJohannes Schindelin, Jun 18, 2015
  161. 04/19 fsck: Offer a function to demote fsck errors to warningsJohannes Schindelin, Jun 18, 2015
  162. 05/19 fsck (receive-pack): Allow demoting errors to warningsJohannes Schindelin, Jun 18, 2015
  163. 06/19 fsck: Report the ID of the error/warningJohannes Schindelin, Jun 18, 2015
  164. 07/19 fsck: Make fsck_ident() warn-friendlyJohannes Schindelin, Jun 18, 2015
  165. 08/19 fsck: Make fsck_commit() warn-friendlyJohannes Schindelin, Jun 18, 2015
  166. 09/19 fsck: Handle multiple authors in commits speciallyJohannes Schindelin, Jun 18, 2015
  167. 11/19 fsck: Add a simple test for receive.fsck.<msg-id>Johannes Schindelin, Jun 18, 2015
  168. 10/19 fsck: Make fsck_tag() warn-friendlyJohannes Schindelin, Jun 18, 2015
  169. 12/19 fsck: Disallow demoting grave fsck errors to warningsJohannes Schindelin, Jun 18, 2015
  170. 13/19 fsck: Optionally ignore specific fsck issues completelyJohannes Schindelin, Jun 18, 2015
  171. 14/19 fsck: Allow upgrading fsck warnings to errorsJohannes Schindelin, Jun 18, 2015
  172. 15/19 fsck: Document the new receive.fsck.<msg-id> optionsJohannes Schindelin, Jun 18, 2015
  173. 16/19 fsck: Support demoting errors to warningsJohannes Schindelin, Jun 18, 2015
  174. 17/19 fsck: Introduce `git fsck --quick`Johannes Schindelin, Jun 18, 2015
  175. 18/19 fsck: git receive-pack: support excluding objects from fsck'ingJohannes Schindelin, Jun 18, 2015
  176. 19/19 fsck: support ignoring objects in `git fsck` via fsck.skiplistJohannes Schindelin, Jun 18, 2015
  177. Junio C HamanoJun 18, 2015
  178. Johannes SchindelinJun 19, 2015
  179. Junio C HamanoJun 19, 2015
  180. Johannes SchindelinJun 19, 2015
  181. 00/19 Introduce an internal API to interact with the fsck machineryJohannes Schindelin, Jun 19, 2015
  182. 01/19 fsck: Introduce fsck optionsJohannes Schindelin, Jun 19, 2015
  183. Junio C HamanoJun 19, 2015
  184. Johannes SchindelinJun 20, 2015
  185. 02/19 fsck: Introduce identifiers for fsck messagesJohannes Schindelin, Jun 19, 2015
  186. Junio C HamanoJun 19, 2015
  187. 03/19 fsck: Provide a function to parse fsck message IDsJohannes Schindelin, Jun 19, 2015
  188. Junio C HamanoJun 19, 2015
  189. Johannes SchindelinJun 21, 2015
  190. 04/19 fsck: Offer a function to demote fsck errors to warningsJohannes Schindelin, Jun 19, 2015
  191. Junio C HamanoJun 19, 2015
  192. Johannes SchindelinJun 21, 2015
  193. Junio C HamanoJun 21, 2015
  194. Johannes SchindelinJun 21, 2015
  195. Junio C HamanoJun 21, 2015
  196. Johannes SchindelinJun 22, 2015
  197. 05/19 fsck (receive-pack): Allow demoting errors to warningsJohannes Schindelin, Jun 19, 2015
  198. 06/19 fsck: Report the ID of the error/warningJohannes Schindelin, Jun 19, 2015
  199. Junio C HamanoJun 19, 2015
  200. Johannes SchindelinJun 19, 2015
  201. Junio C HamanoJun 19, 2015
  202. 07/19 fsck: Make fsck_ident() warn-friendlyJohannes Schindelin, Jun 19, 2015
  203. Junio C HamanoJun 19, 2015
  204. 08/19 fsck: Make fsck_commit() warn-friendlyJohannes Schindelin, Jun 19, 2015
  205. Junio C HamanoJun 19, 2015
  206. Johannes SchindelinJun 19, 2015
  207. Junio C HamanoJun 19, 2015
  208. Junio C HamanoJun 19, 2015
  209. 09/19 fsck: Handle multiple authors in commits speciallyJohannes Schindelin, Jun 19, 2015
  210. Junio C HamanoJun 19, 2015
  211. Johannes SchindelinJun 19, 2015
  212. 10/19 fsck: Make fsck_tag() warn-friendlyJohannes Schindelin, Jun 19, 2015
  213. Junio C HamanoJun 19, 2015
  214. Johannes SchindelinJun 19, 2015
  215. 11/19 fsck: Add a simple test for receive.fsck.<msg-id>Johannes Schindelin, Jun 19, 2015
  216. 12/19 fsck: Disallow demoting grave fsck errors to warningsJohannes Schindelin, Jun 19, 2015
  217. Junio C HamanoJun 19, 2015
  218. Johannes SchindelinJun 19, 2015
  219. Junio C HamanoJun 19, 2015
  220. 13/19 fsck: Optionally ignore specific fsck issues completelyJohannes Schindelin, Jun 19, 2015
  221. 14/19 fsck: Allow upgrading fsck warnings to errorsJohannes Schindelin, Jun 19, 2015
  222. Junio C HamanoJun 19, 2015
  223. Johannes SchindelinJun 19, 2015
  224. 15/19 fsck: Document the new receive.fsck.<msg-id> optionsJohannes Schindelin, Jun 19, 2015
  225. 16/19 fsck: Support demoting errors to warningsJohannes Schindelin, Jun 19, 2015
  226. 17/19 fsck: Introduce `git fsck --quick`Johannes Schindelin, Jun 19, 2015
  227. Junio C HamanoJun 19, 2015
  228. Johannes SchindelinJun 19, 2015
  229. Junio C HamanoJun 19, 2015
  230. Scott SchmitJun 19, 2015
  231. Junio C HamanoJun 20, 2015
  232. Michael HaggertyJun 21, 2015
  233. Randall S. BeckerJun 21, 2015
  234. Johannes SchindelinJun 21, 2015
  235. Johannes SchindelinJun 21, 2015
  236. Junio C HamanoJun 21, 2015
  237. Johannes SchindelinJun 21, 2015
  238. Junio C HamanoJun 21, 2015
  239. Junio C HamanoJun 21, 2015
  240. Johannes SchindelinJun 22, 2015
  241. Junio C HamanoJun 20, 2015
  242. 18/19 fsck: git receive-pack: support excluding objects from fsck'ingJohannes Schindelin, Jun 19, 2015
  243. Junio C HamanoJun 19, 2015
  244. Johannes SchindelinJun 20, 2015
  245. Junio C HamanoJun 20, 2015
  246. Junio C HamanoJun 22, 2015
  247. Johannes SchindelinJun 22, 2015
  248. 19/19 fsck: support ignoring objects in `git fsck` via fsck.skiplistJohannes Schindelin, Jun 19, 2015
  249. Junio C HamanoJun 19, 2015
  250. 00/19 Introduce an internal API to interact with the fsck machineryJohannes Schindelin, Jun 22, 2015
  251. 01/19 fsck: Introduce fsck optionsJohannes Schindelin, Jun 22, 2015
  252. 02/19 fsck: Introduce identifiers for fsck messagesJohannes Schindelin, Jun 22, 2015
  253. 03/19 fsck: Provide a function to parse fsck message IDsJohannes Schindelin, Jun 22, 2015
  254. 04/19 fsck: Offer a function to demote fsck errors to warningsJohannes Schindelin, Jun 22, 2015
  255. Junio C HamanoJun 22, 2015
  256. Johannes SchindelinJun 22, 2015
  257. 05/19 fsck (receive-pack): Allow demoting errors to warningsJohannes Schindelin, Jun 22, 2015
  258. 06/19 fsck: Report the ID of the error/warningJohannes Schindelin, Jun 22, 2015
  259. 07/19 fsck: Make fsck_ident() warn-friendlyJohannes Schindelin, Jun 22, 2015
  260. 08/19 fsck: Make fsck_commit() warn-friendlyJohannes Schindelin, Jun 22, 2015
  261. 09/19 fsck: Handle multiple authors in commits speciallyJohannes Schindelin, Jun 22, 2015
  262. 10/19 fsck: Make fsck_tag() warn-friendlyJohannes Schindelin, Jun 22, 2015
  263. 11/19 fsck: Add a simple test for receive.fsck.<msg-id>Johannes Schindelin, Jun 22, 2015
  264. 12/19 fsck: Disallow demoting grave fsck errors to warningsJohannes Schindelin, Jun 22, 2015
  265. 13/19 fsck: Optionally ignore specific fsck issues completelyJohannes Schindelin, Jun 22, 2015
  266. Junio C HamanoJun 22, 2015
  267. Johannes SchindelinJun 22, 2015
  268. 14/19 fsck: Allow upgrading fsck warnings to errorsJohannes Schindelin, Jun 22, 2015
  269. 15/19 fsck: Document the new receive.fsck.<msg-id> optionsJohannes Schindelin, Jun 22, 2015
  270. 16/19 fsck: Support demoting errors to warningsJohannes Schindelin, Jun 22, 2015
  271. 17/19 fsck: Introduce `git fsck --connectivity-only`Johannes Schindelin, Jun 22, 2015
  272. 18/19 fsck: git receive-pack: support excluding objects from fsck'ingJohannes Schindelin, Jun 22, 2015
  273. 19/19 fsck: support ignoring objects in `git fsck` via fsck.skiplistJohannes Schindelin, Jun 22, 2015
  274. Junio C HamanoJun 22, 2015
  275. Johannes SchindelinJun 22, 2015

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.