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

Re: RFC on packfile URIs and .gitmodules check

From
Taylor Blau <me@ttaylorr.com>
Date
Jan 16, 2021, 03:22 UTC
Message-ID
<YAJcDr0EPkKk0aR/@nand.local>
In-Reply-To
<xmqqim7xraeo.fsf@gitster.c.googlers.com>
On Fri, Jan 15, 2021 at 04:30:07PM -0800, Junio C Hamano wrote:
Show 27 quoted lines
> Jonathan Tan <jonathantanmy@google.com> writes:
>
> > Someone at $DAYJOB noticed that if a .gitmodules-containing tree and the
> > .gitmodules blob itself are sent in 2 separate packfiles during a fetch
> > (which can happen when packfile URIs are used), transfer.fsckobjects
> > causes the fetch to fail. You can reproduce it as follows (as of the
> > time of writing):
> >
> >   $ git -c fetch.uriprotocols=https -c transfer.fsckobjects=true clone https://chromium.googlesource.com/chromiumos/codesearch
> >   Cloning into 'codesearch'...
> >   remote: Total 2242 (delta 0), reused 2242 (delta 0)
> >   Receiving objects: 100% (2242/2242), 1.77 MiB | 4.62 MiB/s, done.
> >   error: object 1f155c20935ee1154a813a814f03ef2b3976680f: gitmodulesMissing: unable to read .gitmodules blob
> >   fatal: fsck error in pack objects
> >   fatal: index-pack failed
> >
> > This happens because the fsck part is currently being done in
> > index-pack, which operates on one pack at a time. When index-pack sees
> > the tree, it runs fsck on it (like any other object), and the fsck
> > subsystem remembers the .gitmodules target (specifically, in
> > gitmodules_found in fsck.c). Later, index-pack runs fsck_finish() which
> > checks if the target exists, but it doesn't, so it reports the failure.
>
> Is this because the gitmodules blob is contained in the base image
> served via the pack URI mechansim, and the "dynamic" packfile for
> the latest part of the history refers to the gitmodules file that is
> unchanged, hence the latter one lacks it?

That seems like a likely explanation, although this seems ultimately up to what the pack CDN serves.

Show 11 quoted lines
> You've listed two possible solutions, i.e.
>
>  (1) punt and declare that we assume an missing and uncheckable blob
>      is OK,
>
>  (2) defer the check after transfer completes.
>
> Between the two, my gut feeling is that the latter is preferrable.
> If we assume an missing and uncheckable one is OK, then even if a
> blob is available to be checked, there is not much point in
> checking, no?

I'm going to second this. If this were a more benign check, then I'd perhaps feel differently, but .gitmodules fsck checks seem to get hardened fairly often during security releases, and so it seems important to keep performing them when the user asked for it.

Show 7 quoted lines
> As long as the quarantine of incoming pack works correctly,
> streaming the incoming packdata (and packfile downloaded out of line
> via a separate mechanism like pack URI) to index-pack that does not
> check to complete the transfer, with a separate step to check the
> sanity of these packs as a whole, should not harm the repository
> even if it is interrupted in the middle, after transfer is done but
> before checking says it is OK.

Agreed. Bear in mind that I am pretty unfamiliar with this code, and so I'm not sure if it's 'easy' or not to change it in this way. The obvious downside, which Jonathan notes, is that you almost certainly have to reinflate all of the trees again.

But, since the user is asking for transfer.fsckObjects explicitly, I don't think that it's a problem.

Show 5 quoted lines
> As a potential third option, I wonder if it is easier for everybody
> involved (including third-party implementation of their
> index-pack/fsck equivalent) if we made it a rule that a pack that
> has a tree that refers to .git<something> must include the blob for
> it?

Interesting, but I'm sure CDN administrators would prefer to have as few restrictions in place as possible.

A potential fourth option that I can think of is that we can try to eagerly perform the .gitmodules fsck checks as we receive objects, under the assumption that the .gitmoudles blob and the tree which contains it appear in the same pack.

If they do, then we ought to be able to check them as we currently do (and avoid leaving them to the slow post-processing step). Any blobs that we _can't_ find get placed into an array, and then that array is iterated over after we have received all packs, including from the CDN. Any blobs that couldn't be found in the pack transferred from the remote, the CDN, or the local repository (and isn't explicitly excluded via an object --filter) is declared missing.

Thoughts?
> Thanks.

Thanks, Taylor

Previous: Junio C HamanoNext: Derrick Stolee
Message 3 of 229 in “RFC on packfile URIs and .gitmodules check”
  1. Jonathan TanJan 15, 2021
  2. Junio C HamanoJan 16, 2021
  3. Taylor BlauJan 16, 2021
  4. Derrick StoleeJan 19, 2021
  5. Jonathan TanJan 19, 2021
  6. Junio C HamanoJan 20, 2021
  7. Jonathan TanJan 19, 2021
  8. Ævar Arnfjörð BjarmasonJan 20, 2021
  9. Doc: clarify contents of packfile sent as URIJonathan Tan, Jan 20, 2021
  10. Jonathan TanJan 20, 2021
  11. Junio C HamanoJan 21, 2021
  12. Jonathan TanJan 21, 2021
  13. Junio C HamanoJan 21, 2021
  14. 0/4 Check .gitmodules when using packfile URIsJonathan Tan, Jan 24, 2021
  15. 1/4 http: allow custom index-pack argsJonathan Tan, Jan 24, 2021
  16. 2/4 http-fetch: allow custom index-pack argsJonathan Tan, Jan 24, 2021
  17. Ævar Arnfjörð BjarmasonJan 24, 2021
  18. Jonathan TanJan 28, 2021
  19. Josh SteadmonFeb 16, 2021
  20. Junio C HamanoFeb 16, 2021
  21. Jonathan TanFeb 17, 2021
  22. 3/4 fetch-pack: with packfile URIs, use index-pack argJonathan Tan, Jan 24, 2021
  23. 4/4 fetch-pack: print and use dangling .gitmodulesJonathan Tan, Jan 24, 2021
  24. Junio C HamanoJan 24, 2021
  25. Junio C HamanoJan 26, 2021
  26. Jonathan TanJan 28, 2021
  27. Ævar Arnfjörð BjarmasonJan 24, 2021
  28. Jonathan TanJan 28, 2021
  29. Ævar Arnfjörð BjarmasonFeb 17, 2021
  30. 00/14 fsck: API improvementsÆvar Arnfjörð Bjarmason, Feb 17, 2021
  31. Junio C HamanoFeb 17, 2021
  32. Ævar Arnfjörð BjarmasonFeb 18, 2021
  33. Junio C HamanoFeb 18, 2021
  34. Jeff KingFeb 18, 2021
  35. Junio C HamanoFeb 18, 2021
  36. Ævar Arnfjörð BjarmasonFeb 19, 2021
  37. Junio C HamanoFeb 18, 2021
  38. 03/10 fsck.c: rename variables in fsck_set_msg_type() for less confusionÆvar Arnfjörð Bjarmason, Feb 18, 2021
  39. Jeff KingFeb 18, 2021
  40. 05/10 fsck.c: rename remaining fsck_msg_id "id" to "msg_id"Ævar Arnfjörð Bjarmason, Feb 18, 2021
  41. Junio C HamanoFeb 18, 2021
  42. 09/10 fsck.c: give "FOREACH_MSG_ID" a more specific nameÆvar Arnfjörð Bjarmason, Feb 18, 2021
  43. Jeff KingFeb 18, 2021
  44. 06/10 fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enumÆvar Arnfjörð Bjarmason, Feb 18, 2021
  45. Jeff KingFeb 18, 2021
  46. Junio C HamanoFeb 18, 2021
  47. 10/10 fsck.h: update FSCK_OPTIONS_* for object_nameÆvar Arnfjörð Bjarmason, Feb 18, 2021
  48. Jeff KingFeb 18, 2021
  49. Junio C HamanoFeb 18, 2021
  50. Junio C HamanoFeb 18, 2021
  51. 08/10 fsck.c: undefine temporary STR macro after useÆvar Arnfjörð Bjarmason, Feb 18, 2021
  52. Junio C HamanoFeb 18, 2021
  53. 07/10 fsck.c: call parse_msg_type() early in fsck_set_msg_type()Ævar Arnfjörð Bjarmason, Feb 18, 2021
  54. Junio C HamanoFeb 18, 2021
  55. 04/10 fsck.c: move definition of msg_id into append_msg_id()Ævar Arnfjörð Bjarmason, Feb 18, 2021
  56. 01/10 fsck.h: indent arguments to of fsck_set_msg_typeÆvar Arnfjörð Bjarmason, Feb 18, 2021
  57. 02/10 fsck.h: use "enum object_type" instead of "int"Ævar Arnfjörð Bjarmason, Feb 18, 2021
  58. 00/10 fsck: API improvements (no conflicts with 'seen')Ævar Arnfjörð Bjarmason, Feb 18, 2021
  59. Junio C HamanoFeb 18, 2021
  60. 01/22 fsck.h: update FSCK_OPTIONS_* for object_nameÆvar Arnfjörð Bjarmason, Mar 6, 2021
  61. 00/22 fsck: API improvementsÆvar Arnfjörð Bjarmason, Mar 6, 2021
  62. Junio C HamanoMar 7, 2021
  63. Ævar Arnfjörð BjarmasonMar 8, 2021
  64. 01/22 fsck.h: update FSCK_OPTIONS_* for object_nameÆvar Arnfjörð Bjarmason, Mar 16, 2021
  65. Junio C HamanoMar 17, 2021
  66. Johannes SchindelinMar 19, 2021
  67. Ævar Arnfjörð BjarmasonMar 20, 2021
  68. Junio C HamanoMar 20, 2021
  69. 04/22 fsck.h: add a FSCK_OPTIONS_COMMON_ERROR_FUNC macroÆvar Arnfjörð Bjarmason, Mar 16, 2021
  70. Derrick StoleeMar 16, 2021
  71. 03/22 fsck.h: reduce duplication between FSCK_OPTIONS_{DEFAULT,STRICT}Ævar Arnfjörð Bjarmason, Mar 16, 2021
  72. 00/22 fsck: API improvementsÆvar Arnfjörð Bjarmason, Mar 16, 2021
  73. Derrick StoleeMar 16, 2021
  74. 01/19 fsck.c: refactor and rename common config callbackÆvar Arnfjörð Bjarmason, Mar 17, 2021
  75. 02/19 fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}Ævar Arnfjörð Bjarmason, Mar 17, 2021
  76. 03/19 fsck.h: use "enum object_type" instead of "int"Ævar Arnfjörð Bjarmason, Mar 17, 2021
  77. 00/19 fsck: API improvementsÆvar Arnfjörð Bjarmason, Mar 17, 2021
  78. Derrick StoleeMar 17, 2021
  79. Junio C HamanoMar 17, 2021
  80. 00/19 fsck: API improvementsÆvar Arnfjörð Bjarmason, Mar 28, 2021
  81. 02/19 fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}Ævar Arnfjörð Bjarmason, Mar 28, 2021
  82. Ramsay JonesMar 28, 2021
  83. Junio C HamanoMar 29, 2021
  84. 01/19 fsck.c: refactor and rename common config callbackÆvar Arnfjörð Bjarmason, Mar 28, 2021
  85. 04/19 fsck.c: rename variables in fsck_set_msg_type() for less confusionÆvar Arnfjörð Bjarmason, Mar 28, 2021
  86. 06/19 fsck.c: rename remaining fsck_msg_id "id" to "msg_id"Ævar Arnfjörð Bjarmason, Mar 28, 2021
  87. 05/19 fsck.c: remove (mostly) redundant append_msg_id() functionÆvar Arnfjörð Bjarmason, Mar 28, 2021
  88. 03/19 fsck.h: use "enum object_type" instead of "int"Ævar Arnfjörð Bjarmason, Mar 28, 2021
  89. 08/19 fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enumÆvar Arnfjörð Bjarmason, Mar 28, 2021
  90. 09/19 fsck.h: re-order and re-assign "enum fsck_msg_type"Ævar Arnfjörð Bjarmason, Mar 28, 2021
  91. 07/19 fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"Ævar Arnfjörð Bjarmason, Mar 28, 2021
  92. 11/19 fsck.c: undefine temporary STR macro after useÆvar Arnfjörð Bjarmason, Mar 28, 2021
  93. 10/19 fsck.c: call parse_msg_type() early in fsck_set_msg_type()Ævar Arnfjörð Bjarmason, Mar 28, 2021
  94. 14/19 fsck.c: pass along the fsck_msg_id in the fsck_error callbackÆvar Arnfjörð Bjarmason, Mar 28, 2021
  95. 12/19 fsck.c: give "FOREACH_MSG_ID" a more specific nameÆvar Arnfjörð Bjarmason, Mar 28, 2021
  96. 15/19 fsck.c: add an fsck_set_msg_type() API that takes enumsÆvar Arnfjörð Bjarmason, Mar 28, 2021
  97. 13/19 fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.hÆvar Arnfjörð Bjarmason, Mar 28, 2021
  98. 16/19 fsck.c: move gitmodules_{found,done} into fsck_optionsÆvar Arnfjörð Bjarmason, Mar 28, 2021
  99. 17/19 fetch-pack: don't needlessly copy fsck_optionsÆvar Arnfjörð Bjarmason, Mar 28, 2021
  100. 19/19 fetch-pack: use new fsck API to printing dangling submodulesÆvar Arnfjörð Bjarmason, Mar 28, 2021
  101. 18/19 fetch-pack: use file-scope static struct for fsck_optionsÆvar Arnfjörð Bjarmason, Mar 28, 2021
  102. Junio C HamanoMar 29, 2021
  103. 04/19 fsck.c: rename variables in fsck_set_msg_type() for less confusionÆvar Arnfjörð Bjarmason, Mar 17, 2021
  104. 08/19 fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enumÆvar Arnfjörð Bjarmason, Mar 17, 2021
  105. 06/19 fsck.c: rename remaining fsck_msg_id "id" to "msg_id"Ævar Arnfjörð Bjarmason, Mar 17, 2021
  106. 05/19 fsck.c: move definition of msg_id into append_msg_id()Ævar Arnfjörð Bjarmason, Mar 17, 2021
  107. 09/19 fsck.h: re-order and re-assign "enum fsck_msg_type"Ævar Arnfjörð Bjarmason, Mar 17, 2021
  108. 07/19 fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"Ævar Arnfjörð Bjarmason, Mar 17, 2021
  109. 10/19 fsck.c: call parse_msg_type() early in fsck_set_msg_type()Ævar Arnfjörð Bjarmason, Mar 17, 2021
  110. 11/19 fsck.c: undefine temporary STR macro after useÆvar Arnfjörð Bjarmason, Mar 17, 2021
  111. 12/19 fsck.c: give "FOREACH_MSG_ID" a more specific nameÆvar Arnfjörð Bjarmason, Mar 17, 2021
  112. 13/19 fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.hÆvar Arnfjörð Bjarmason, Mar 17, 2021
  113. 16/19 fsck.c: move gitmodules_{found,done} into fsck_optionsÆvar Arnfjörð Bjarmason, Mar 17, 2021
  114. 14/19 fsck.c: pass along the fsck_msg_id in the fsck_error callbackÆvar Arnfjörð Bjarmason, Mar 17, 2021
  115. 17/19 fetch-pack: don't needlessly copy fsck_optionsÆvar Arnfjörð Bjarmason, Mar 17, 2021
  116. 15/19 fsck.c: add an fsck_set_msg_type() API that takes enumsÆvar Arnfjörð Bjarmason, Mar 17, 2021
  117. 18/19 fetch-pack: use file-scope static struct for fsck_optionsÆvar Arnfjörð Bjarmason, Mar 17, 2021
  118. 19/19 fetch-pack: use new fsck API to printing dangling submodulesÆvar Arnfjörð Bjarmason, Mar 17, 2021
  119. 02/22 fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}Ævar Arnfjörð Bjarmason, Mar 16, 2021
  120. Derrick StoleeMar 16, 2021
  121. Junio C HamanoMar 17, 2021
  122. 05/22 fsck.h: indent arguments to of fsck_set_msg_typeÆvar Arnfjörð Bjarmason, Mar 16, 2021
  123. 06/22 fsck.h: use "enum object_type" instead of "int"Ævar Arnfjörð Bjarmason, Mar 16, 2021
  124. 08/22 fsck.c: move definition of msg_id into append_msg_id()Ævar Arnfjörð Bjarmason, Mar 16, 2021
  125. Junio C HamanoMar 17, 2021
  126. 07/22 fsck.c: rename variables in fsck_set_msg_type() for less confusionÆvar Arnfjörð Bjarmason, Mar 16, 2021
  127. 10/22 fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"Ævar Arnfjörð Bjarmason, Mar 16, 2021
  128. 09/22 fsck.c: rename remaining fsck_msg_id "id" to "msg_id"Ævar Arnfjörð Bjarmason, Mar 16, 2021
  129. 11/22 fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enumÆvar Arnfjörð Bjarmason, Mar 16, 2021
  130. Junio C HamanoMar 17, 2021
  131. 13/22 fsck.c: call parse_msg_type() early in fsck_set_msg_type()Ævar Arnfjörð Bjarmason, Mar 16, 2021
  132. 12/22 fsck.h: re-order and re-assign "enum fsck_msg_type"Ævar Arnfjörð Bjarmason, Mar 16, 2021
  133. Junio C HamanoMar 17, 2021
  134. 15/22 fsck.c: give "FOREACH_MSG_ID" a more specific nameÆvar Arnfjörð Bjarmason, Mar 16, 2021
  135. 14/22 fsck.c: undefine temporary STR macro after useÆvar Arnfjörð Bjarmason, Mar 16, 2021
  136. Junio C HamanoMar 17, 2021
  137. 20/22 fetch-pack: don't needlessly copy fsck_optionsÆvar Arnfjörð Bjarmason, Mar 16, 2021
  138. 16/22 fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.hÆvar Arnfjörð Bjarmason, Mar 16, 2021
  139. 19/22 fsck.c: move gitmodules_{found,done} into fsck_optionsÆvar Arnfjörð Bjarmason, Mar 16, 2021
  140. 18/22 fsck.c: add an fsck_set_msg_type() API that takes enumsÆvar Arnfjörð Bjarmason, Mar 16, 2021
  141. 17/22 fsck.c: pass along the fsck_msg_id in the fsck_error callbackÆvar Arnfjörð Bjarmason, Mar 16, 2021
  142. Junio C HamanoMar 17, 2021
  143. 22/22 fetch-pack: use new fsck API to printing dangling submodulesÆvar Arnfjörð Bjarmason, Mar 16, 2021
  144. Derrick StoleeMar 16, 2021
  145. Ævar Arnfjörð BjarmasonMar 17, 2021
  146. Derrick StoleeMar 17, 2021
  147. Junio C HamanoMar 17, 2021
  148. 21/22 fetch-pack: use file-scope static struct for fsck_optionsÆvar Arnfjörð Bjarmason, Mar 16, 2021
  149. 02/22 fsck.h: use designed initializers for FSCK_OPTIONS_{DEFAULT,STRICT}Ævar Arnfjörð Bjarmason, Mar 6, 2021
  150. 04/22 fsck.h: add a FSCK_OPTIONS_COMMON_ERROR_FUNC macroÆvar Arnfjörð Bjarmason, Mar 6, 2021
  151. 03/22 fsck.h: reduce duplication between FSCK_OPTIONS_{DEFAULT,STRICT}Ævar Arnfjörð Bjarmason, Mar 6, 2021
  152. 06/22 fsck.h: use "enum object_type" instead of "int"Ævar Arnfjörð Bjarmason, Mar 6, 2021
  153. 08/22 fsck.c: move definition of msg_id into append_msg_id()Ævar Arnfjörð Bjarmason, Mar 6, 2021
  154. 05/22 fsck.h: indent arguments to of fsck_set_msg_typeÆvar Arnfjörð Bjarmason, Mar 6, 2021
  155. 10/22 fsck.c: refactor fsck_msg_type() to limit scope of "int msg_type"Ævar Arnfjörð Bjarmason, Mar 6, 2021
  156. 13/22 fsck.c: call parse_msg_type() early in fsck_set_msg_type()Ævar Arnfjörð Bjarmason, Mar 6, 2021
  157. 15/22 fsck.c: give "FOREACH_MSG_ID" a more specific nameÆvar Arnfjörð Bjarmason, Mar 6, 2021
  158. 09/22 fsck.c: rename remaining fsck_msg_id "id" to "msg_id"Ævar Arnfjörð Bjarmason, Mar 6, 2021
  159. 11/22 fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enumÆvar Arnfjörð Bjarmason, Mar 6, 2021
  160. 07/22 fsck.c: rename variables in fsck_set_msg_type() for less confusionÆvar Arnfjörð Bjarmason, Mar 6, 2021
  161. 19/22 fsck.c: move gitmodules_{found,done} into fsck_optionsÆvar Arnfjörð Bjarmason, Mar 6, 2021
  162. 18/22 fsck.c: add an fsck_set_msg_type() API that takes enumsÆvar Arnfjörð Bjarmason, Mar 6, 2021
  163. 12/22 fsck.h: re-order and re-assign "enum fsck_msg_type"Ævar Arnfjörð Bjarmason, Mar 6, 2021
  164. 17/22 fsck.c: pass along the fsck_msg_id in the fsck_error callbackÆvar Arnfjörð Bjarmason, Mar 6, 2021
  165. 21/22 fetch-pack: use file-scope static struct for fsck_optionsÆvar Arnfjörð Bjarmason, Mar 6, 2021
  166. 14/22 fsck.c: undefine temporary STR macro after useÆvar Arnfjörð Bjarmason, Mar 6, 2021
  167. 22/22 fetch-pack: use new fsck API to printing dangling submodulesÆvar Arnfjörð Bjarmason, Mar 6, 2021
  168. 20/22 fetch-pack: don't needlessly copy fsck_optionsÆvar Arnfjörð Bjarmason, Mar 6, 2021
  169. 16/22 fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.hÆvar Arnfjörð Bjarmason, Mar 6, 2021
  170. 02/14 fsck.h: use use "enum object_type" instead of "int"Ævar Arnfjörð Bjarmason, Feb 17, 2021
  171. Junio C HamanoFeb 17, 2021
  172. 03/14 fsck.c: rename variables in fsck_set_msg_type() for less confusionÆvar Arnfjörð Bjarmason, Feb 17, 2021
  173. 01/14 fsck.h: indent arguments to of fsck_set_msg_typeÆvar Arnfjörð Bjarmason, Feb 17, 2021
  174. 04/14 fsck.c: move definition of msg_id into append_msg_id()Ævar Arnfjörð Bjarmason, Feb 17, 2021
  175. 07/14 fsck.c: call parse_msg_type() early in fsck_set_msg_type()Ævar Arnfjörð Bjarmason, Feb 17, 2021
  176. 05/14 fsck.c: rename remaining fsck_msg_id "id" to "msg_id"Ævar Arnfjörð Bjarmason, Feb 17, 2021
  177. 08/14 fsck.c: undefine temporary STR macro after useÆvar Arnfjörð Bjarmason, Feb 17, 2021
  178. 10/14 fsck.[ch]: move FOREACH_FSCK_MSG_ID & fsck_msg_id from *.c to *.hÆvar Arnfjörð Bjarmason, Feb 17, 2021
  179. 12/14 fsck.c: add an fsck_set_msg_type() API that takes enumsÆvar Arnfjörð Bjarmason, Feb 17, 2021
  180. 11/14 fsck.c: pass along the fsck_msg_id in the fsck_error callbackÆvar Arnfjörð Bjarmason, Feb 17, 2021
  181. 06/14 fsck.h: move FSCK_{FATAL,INFO,ERROR,WARN,IGNORE} into an enumÆvar Arnfjörð Bjarmason, Feb 17, 2021
  182. 13/14 fsck.h: update FSCK_OPTIONS_* for object_nameÆvar Arnfjörð Bjarmason, Feb 17, 2021
  183. 14/14 fsck.c: move gitmodules_{found,done} into fsck_optionsÆvar Arnfjörð Bjarmason, Feb 17, 2021
  184. 09/14 fsck.c: give "FOREACH_MSG_ID" a more specific nameÆvar Arnfjörð Bjarmason, Feb 17, 2021
  185. Jonathan TanFeb 17, 2021
  186. Ævar Arnfjörð BjarmasonJan 24, 2021
  187. Jonathan TanJan 28, 2021
  188. Ævar Arnfjörð BjarmasonFeb 17, 2021
  189. Jonathan TanFeb 17, 2021
  190. Ævar Arnfjörð BjarmasonFeb 18, 2021
  191. Ævar Arnfjörð BjarmasonFeb 17, 2021
  192. Jonathan TanFeb 17, 2021
  193. Junio C HamanoJan 24, 2021
  194. Jonathan TanJan 28, 2021
  195. Ævar Arnfjörð BjarmasonFeb 18, 2021
  196. Junio C HamanoFeb 18, 2021
  197. Jonathan TanFeb 19, 2021
  198. Junio C HamanoFeb 20, 2021
  199. Ævar Arnfjörð BjarmasonFeb 19, 2021
  200. Junio C HamanoFeb 20, 2021
  201. 0/4 Check .gitmodules when using packfile URIsJonathan Tan, Feb 22, 2021
  202. 1/4 http: allow custom index-pack argsJonathan Tan, Feb 22, 2021
  203. 2/4 http-fetch: allow custom index-pack argsJonathan Tan, Feb 22, 2021
  204. Ævar Arnfjörð BjarmasonFeb 23, 2021
  205. Jonathan TanFeb 23, 2021
  206. Jonathan NiederMar 5, 2021
  207. fetch-pack: do not mix --pack_header and packfile uriJonathan Tan, Mar 5, 2021
  208. Junio C HamanoMar 5, 2021
  209. Junio C HamanoMar 5, 2021
  210. Junio C HamanoMar 5, 2021
  211. Jonathan TanMar 5, 2021
  212. Junio C HamanoMar 5, 2021
  213. Jonathan TanMar 5, 2021
  214. Junio C HamanoMar 5, 2021
  215. Jonathan TanMar 8, 2021
  216. Junio C HamanoMar 8, 2021
  217. Junio C HamanoMar 9, 2021
  218. Junio C HamanoMar 10, 2021
  219. Jonathan TanMar 10, 2021
  220. Junio C HamanoMar 10, 2021
  221. Junio C HamanoMar 10, 2021
  222. Jonathan TanMar 10, 2021
  223. Junio C HamanoMar 11, 2021
  224. Junio C HamanoMar 11, 2021
  225. Jonathan TanMar 11, 2021
  226. Junio C HamanoMar 11, 2021
  227. 3/4 fetch-pack: with packfile URIs, use index-pack argJonathan Tan, Feb 22, 2021
  228. 4/4 fetch-pack: print and use dangling .gitmodulesJonathan Tan, Feb 22, 2021
  229. Junio C HamanoFeb 22, 2021

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.