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

Re: [PATCH] fetch-pack: do not mix --pack_header and packfile uri

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 10, 2021, 18:30 UTC
Message-ID
<xmqqa6rakgj3.fsf@gitster.g>
In-Reply-To
<20210310165716.2014235-1-jonathantanmy@google.com>
Jonathan Tan <jonathantanmy@google.com> writes:
> You mentioned --fix-thin (5) and --promisor (8). Why do you think that
> none of these should be given to the "index-pack" that processes the
> packfiles given by URI?
Actually, --fix-thin is probably even worse than that.

As the code processes the in-stream packdata before processing or even downloading the pregenerated URI packfile, the objects necessary to fix a "thin" in-stream packdata are likely to be unavailable (it is exactly the same problem as the one that made us to delay the fsckobjects done in index-pack when URI packfile is involved, isn't it?). Even if the client asks --thin, the server side shouldn't produce a thin pack for in-stream packdata, no?

> Perhaps it could be argued that these extra
> packfiles don't need --fix-thin (but I would say that I think servers
> should be allowed to serve thin packfiles through URI too), 

I agree that URI packfile could be thin; after all, the server end chooses, based on what the client claims to have, which pregenerated packfile to hand out, so it is perfectly fine to hand out a pregenerated packfile that is thin if the client asks for a thin pack and says it has base objects missing from that packfile. And because it is (assumed to be) pregenerated, we can make a requirement that no URI packfile should depend on objects that are created later that that (which means it won't depend on in-stream packdata).

But we cannot process a thin in-stream packdata, if we are to process it first, right?

> but I think
> that --promisor is necessary (so that a server could, for example,
> offload all trees and commits to a packfile in a CDN, and offload all
> blobs to a separate packfile in a CDN).

Yes, both packfiles conceptually are given by that same server who promises to be always available to feed us everything we'd need later, so both packfiles should be marked to have come from the same promisor. So this is one example that happens to be sharable between the two.

But I do not see it as an indication that the two packs inherently must be processed with the same options.

> Looking at this list, I think that all the arguments (except 9, which
> has been fixed) are necessary (or at least useful) for indexing a
> packfile given by URI.

I have to say that this is focusing too much on the current need by going through how the current code handles two packs. Of course, if we start from "two must be the same" viewpoint, and restrict what the code can do by "guarding" bits that require the two to be different out based on "if (index_pack_args)", then the resulting code would invoke two index-pack the same way.

I am more worried about the longer term code health, so "currently mostly the same" does not make a convincing argument for the future why the two must be processed the same way.

Show 9 quoted lines
>> Also, because this loop copies everything in cmd.args, if our
>> in-stream packdata is small, cmd.args.v[0] would be "unpack-objects",
>> and we end up asking the command to explode the (presumably large
>> enough to be worth pre-generating and serving via CDN) packfile that
>> is given via the packfile URI mechanism.
>
> I specifically guard against this through the "if (do_keep ||
> args->from_promisor || index_pack_args || fsck_objects) {" line (which
> is a complicated line, unfortunately).

I am aware of that line that forbids the in-stream packdata from getting unpacked into loose objects. But unless we were told to keep the resulting pack, or run fsck-objects via the index-pack, I do not see an inherent reason why the "most recent leftover bits that are not in the pregenerated pack offloaded to CDN" objects must be kept in a separate packfile, especially if the number of objects in it is smaller than the unpack limit threshold. In other words, I view that "guard" as one of the things that blinds us into thinking that the two packs should be handled the same way. It is the other way around---the guard is there only because the code wanted to handle the two packs the same way.

When cloning from a server that offers bulk of old history in a URI packfile and an in-stream packfile, shouldn't the result be like cloning from the server back when it had only the objects in the URI packfile, and then fetching from it again when it acquired objects that came in the in-stream packfile? The objects that come during the second fetch would be left loose if there aren't that many, so that the third and subsequent fetches and local activity can accumulate enough loose objects to be packed into a single new pack, avoiding accumulation of too many tiny packs. And the "guard" breaks that only because this codepath wants to reuse cmd.args that is unrelated to populate index_pack_args. Isn't that an artificial limitation that we may want to eventually fix?

When we want to fix that, the "options are mostly the same when we use the index-pack command for both packdata, so let's copy the entire command line" would come back and haunt us. The person who is doing the fix may be somebody other than you, so it may not matter to you today, but it will hurt somebody tomorrow.

I already said that I think 2aec3bc4 (fetch-pack: do not mix --pack_header and packfile uri, 2021-03-04) is OK as a short-term fix for the upcoming release, but it does not change the fact that it is piling technical debt on top of existing technical debt.

And that is why I am reacting against your earlier mention of "filering out" rather strongly. The approach continues the "keep the single args array in the belief that two must be mostly the same", which I view as a misguided starting point that must be rethought.

Thanks.
Previous: Jonathan TanNext: Junio C Hamano
Message 220 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.