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

Re: [PATCH v2 2/6] midx: add progress to write_midx_file Add progress to write_midx_file. Progress is displayed when the MIDX_PROGRESS flag is set.

From
WBWilliam Baker <williamtbakeremail@gmail.com>
Date
Sep 30, 2019, 16:36 UTC
Message-ID
<07d054d2-c37e-5a8a-9550-c1d90bb80af7@gmail.com>
In-Reply-To
<xmqqftkhkrl6.fsf@gitster-ct.c.googlers.com>
On 9/27/19 8:49 PM, Junio C Hamano wrote:
Show 19 quoted lines
>>>> diff --git a/midx.c b/midx.c
>>>> index b2673f52e8..54e4e93b2b 100644
>>>> --- a/midx.c
>>>> +++ b/midx.c
>>>> @@ -449,6 +449,8 @@ struct pack_list {
>>>>  	uint32_t nr;
>>>>  	uint32_t alloc;
>>>>  	struct multi_pack_index *m;
>>>> +	struct progress *progress;
>>>> +	uint32_t pack_paths_checked;
>>>>  };
>>
>> I went with u32 here to match the data type used to track how many
>> entries are in the pack_list ('nr' is a u32).
> 
> That kind of parallel is valid when you could compare nr with this
> new thing (or put it differently, the existing nr and this new thing
> counts the same).  Are they both about the number of packs?
> 

Both 'nr' and 'pack_paths_checked' are about the number of packs. 'nr' tracks the number of packs in the multi-pack-index and it grows as add_pack_to_midx() finds new packs to add. 'pack_paths_checked' is the number of pack ".idx" files that have been checked by add_pack_to_midx().

Show 22 quoted lines
>> I could switch to this to an unsigned but we would run the (extremely
>> unlikely) risk of having more than 65k packs on a system where
>> unsigned is 16 bits.
> 
> Why?  If an arch is small enough that the natural integer size is 16-bit,
> then limiting the total number of packs to 65k sound entirely
> sensible.> The only reason why you'd want fixed (across platforms and
> architectures) type is when you want to make sure that a file
> storing the literal values taken from these fields are portable and
> everybody is limited the same way.  If a platform's natural integer
> is 64-bit, by artificially limiting the size of this field to u32,
> you are making disservice to the platform users, and more
> importantly, you are wasting developers' time by forcing them to
> wonder if there is a reason behind the choice of u32 (does it really
> need to be able to store up to 4G, even on a smaller machines?  Is
> it necessary to refuse to store more than 4G?  What are the
> reasons?), like me wondering about these questions and writing them
> down here.
> 
> So, unless there is a reason why this must be of fixed type, I'd say
> just an unsigned would be the most reasonable choice.
> 

I agree that it's best to avoid using a fixed type here unless there's a reason that it must be. Do you think that both 'nr' and 'pack_paths_checked' being about the number of packs is a strong enough reason to use u32 for 'pack_paths_checked'? If not, I will update 'pack_paths_checked' in the next path series to be an unsigned int.

Thanks, William

Previous: Junio C HamanoNext: William Baker via GitGitGadget
Message 37 of 58 in “multi-pack-index: add --no-progress”
  1. 0/1 multi-pack-index: add --no-progressWilliam Baker via GitGitGadget, Sep 11, 2019
  2. 1/1 multi-pack-index: add --no-progress Add --no-progress option to git multi-pack-index. The progress feature was added in 144d703 ("multi-pack-index: report progress during 'verify'", 2018-09-13) but the ability to opt-out was overlooked.William Baker via GitGitGadget, Sep 11, 2019
  3. Junio C HamanoSep 12, 2019
  4. William BakerSep 13, 2019
  5. Junio C HamanoSep 13, 2019
  6. William BakerSep 16, 2019
  7. Derrick StoleeSep 11, 2019
  8. 0/6 multi-pack-index: add --no-progressWilliam Baker via GitGitGadget, Sep 20, 2019
  9. 1/6 midx: add MIDX_PROGRESS flag Add the MIDX_PROGRESS flag and update the write|verify|expire|repack functions in midx.h to accept a flags parameter. The MIDX_PROGRESS flag indicates whether the caller of the function would like progress information to be displayed. This patch only changes the method prototypes and does not change the functionality. The functionality change will be handled by a later patch.William Baker via GitGitGadget, Sep 20, 2019
  10. Junio C HamanoSep 20, 2019
  11. Junio C HamanoSep 20, 2019
  12. SZEDER GáborSep 21, 2019
  13. William BakerSep 23, 2019
  14. Junio C HamanoSep 28, 2019
  15. William BakerSep 30, 2019
  16. Junio C HamanoOct 2, 2019
  17. Junio C HamanoOct 2, 2019
  18. Junio C HamanoOct 2, 2019
  19. William BakerOct 2, 2019
  20. SZEDER GáborOct 7, 2019
  21. SZEDER GáborOct 7, 2019
  22. Junio C HamanoOct 8, 2019
  23. William BakerOct 8, 2019
  24. SZEDER GáborOct 9, 2019
  25. SZEDER GáborOct 9, 2019
  26. William BakerOct 15, 2019
  27. Junio C HamanoOct 16, 2019
  28. William BakerOct 16, 2019
  29. William BakerOct 18, 2019
  30. 5/6 midx: honor the MIDX_PROGRESS flag in midx_repack Update midx_repack to only display progress when the MIDX_PROGRESS flag is set.William Baker via GitGitGadget, Sep 20, 2019
  31. Junio C HamanoSep 20, 2019
  32. 4/6 midx: honor the MIDX_PROGRESS flag in verify_midx_file Update verify_midx_file to only display progress when the MIDX_PROGRESS flag is set.William Baker via GitGitGadget, Sep 20, 2019
  33. 2/6 midx: add progress to write_midx_file Add progress to write_midx_file. Progress is displayed when the MIDX_PROGRESS flag is set.William Baker via GitGitGadget, Sep 20, 2019
  34. Junio C HamanoSep 20, 2019
  35. William BakerSep 23, 2019
  36. Junio C HamanoSep 28, 2019
  37. William BakerSep 30, 2019
  38. 3/6 midx: add progress to expire_midx_packs Add progress to expire_midx_packs. Progress is displayed when the MIDX_PROGRESS flag is set.William Baker via GitGitGadget, Sep 20, 2019
  39. 6/6 multi-pack-index: add [--[no-]progress] option. Add the --[no-]progress option to git multi-pack-index. Pass the MIDX_PROGRESS flag to the subcommand functions when progress should be displayed by multi-pack-index. The progress feature was added to 'verify' in 144d703 ("multi-pack-index: report progress during 'verify'", 2018-09-13) but some subcommands were not updated to display progress, and the ability to opt-out was overlooked.William Baker via GitGitGadget, Sep 20, 2019
  40. Junio C HamanoSep 20, 2019
  41. William BakerSep 20, 2019
  42. Philip OakleySep 20, 2019
  43. William BakerSep 20, 2019
  44. 0/6 multi-pack-index: add --no-progressWilliam Baker via GitGitGadget, Oct 3, 2019
  45. 1/6 midx: add MIDX_PROGRESS flagWilliam Baker via GitGitGadget, Oct 3, 2019
  46. 3/6 midx: add progress to expire_midx_packsWilliam Baker via GitGitGadget, Oct 3, 2019
  47. 2/6 midx: add progress to write_midx_fileWilliam Baker via GitGitGadget, Oct 3, 2019
  48. 5/6 midx: honor the MIDX_PROGRESS flag in midx_repackWilliam Baker via GitGitGadget, Oct 3, 2019
  49. 4/6 midx: honor the MIDX_PROGRESS flag in verify_midx_fileWilliam Baker via GitGitGadget, Oct 3, 2019
  50. 6/6 multi-pack-index: add [--[no-]progress] option.William Baker via GitGitGadget, Oct 3, 2019
  51. Junio C HamanoOct 3, 2019
  52. 0/6 multi-pack-index: add --no-progressWilliam Baker via GitGitGadget, Oct 21, 2019
  53. 3/6 midx: add progress to expire_midx_packsWilliam Baker via GitGitGadget, Oct 21, 2019
  54. 1/6 midx: add MIDX_PROGRESS flagWilliam Baker via GitGitGadget, Oct 21, 2019
  55. 5/6 midx: honor the MIDX_PROGRESS flag in midx_repackWilliam Baker via GitGitGadget, Oct 21, 2019
  56. 4/6 midx: honor the MIDX_PROGRESS flag in verify_midx_fileWilliam Baker via GitGitGadget, Oct 21, 2019
  57. 6/6 multi-pack-index: add [--[no-]progress] option.William Baker via GitGitGadget, Oct 21, 2019
  58. 2/6 midx: add progress to write_midx_fileWilliam Baker via GitGitGadget, Oct 21, 2019

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.