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

Re: [PATCH v5 0/4] sparse-index: expand/collapse based on 'index.sparse'

From
Elijah Newren <newren@gmail.com>
Date
Nov 23, 2021, 17:21 UTC
Message-ID
<CABPp-BHkjvzSCihDnwRL5R-JDA1LZx23oTm7cp8gtueo3h9+LA@mail.gmail.com>
In-Reply-To
<pull.1059.v5.git.1637626833.gitgitgadget@gmail.com>

On Mon, Nov 22, 2021 at 4:20 PM Victoria Dye via GitGitGadget <gitgitgadget@gmail.com> wrote:

Show 57 quoted lines
>
> This series updates do_read_index to use the index.sparse config setting
> when determining whether the index should be expanded or collapsed. If the
> command & repo allow use of a sparse index, index.sparse is enabled, and a
> full index is read from disk, the index is collapsed before returning to the
> caller. Conversely, if index.sparse is disabled but the index read from disk
> is sparse, the index is expanded before returning. This allows index.sparse
> to control use of the sparse index in addition to its existing control over
> how the index is written to disk. It also introduces the ability to
> enable/disable the sparse index on a command-by-command basis (e.g.,
> allowing a user to troubleshoot a sparse-aware command with '-c
> index.sparse=false' [1]).
>
> While testing this change, a bug was found in 'test-tool read-cache' in
> which config settings for the repository were not initialized before
> preparing the repo settings. This caused index.sparse to always be 'false'
> when using the test helper in a cone-mode sparse checkout, breaking tests in
> t1091 and t1092. The issue is fixed by moving prepare_repo_settings after
> config setup.
>
>
> Changes since V1
> ================
>
>  * Add ensure_correct_sparsity function that ensures the index is sparse if
>    the repository settings (including index.sparse) allow it, otherwise
>    ensuring the index is expanded to full.
>  * Restructure condition in do_read_index to, rather than check specifically
>    for the index.sparse config setting, call ensure_correct_sparsity
>    unconditionally when command_requires_full_index is false.
>
>
> Changes since V2
> ================
>
>  * Rename can_convert_to_sparse to is_sparse_index_allowed to more
>    accurately reflect what the function returns.
>  * Remove index-iterating checks from is_sparse_index_allowed, leaving only
>    inexpensive checks on config settings & sparse checkout patterns. Checks
>    are still part of convert_to_sparse to ensure it behaves exactly as it
>    did before this series.
>  * Restructure ensure_correct_sparsity for better readability.
>  * Fix test_env variable scope.
>
>
> Changes since V3
> ================
>
>  * Add a new patch to avoid unnecessary cache tree free/recreation when
>    possible in convert_to_sparse.
>
>
> Changes since V4
> ================
>
>  * Updated patch 4/4 commit message to better explain practical reasons for
>    making this change.
Thanks.  This version looks good to me:
Reviewed-by: Elijah Newren <newren@gmail.com>
Previous: Victoria Dye via GitGitGadget
Message 44 of 44 in “sparse-index: expand/collapse based on 'index.sparse'”
  1. 0/2 sparse-index: expand/collapse based on 'index.sparse'Victoria Dye via GitGitGadget, Oct 15, 2021
  2. 1/2 test-read-cache.c: prepare_repo_settings after config initVictoria Dye via GitGitGadget, Oct 15, 2021
  3. 2/2 sparse-index: update index read to consider index.sparse configVictoria Dye via GitGitGadget, Oct 15, 2021
  4. Junio C HamanoOct 15, 2021
  5. Derrick StoleeOct 17, 2021
  6. Junio C HamanoOct 17, 2021
  7. Derrick StoleeOct 17, 2021
  8. Junio C HamanoOct 18, 2021
  9. Derrick StoleeOct 18, 2021
  10. Victoria DyeOct 18, 2021
  11. Derrick StoleeOct 21, 2021
  12. Junio C HamanoOct 18, 2021
  13. 0/3 sparse-index: expand/collapse based on 'index.sparse'Victoria Dye via GitGitGadget, Oct 21, 2021
  14. 1/3 test-read-cache.c: prepare_repo_settings after config initVictoria Dye via GitGitGadget, Oct 21, 2021
  15. 3/3 sparse-index: update do_read_index to ensure correct sparsityVictoria Dye via GitGitGadget, Oct 21, 2021
  16. 2/3 sparse-index: add ensure_correct_sparsity functionVictoria Dye via GitGitGadget, Oct 21, 2021
  17. Junio C HamanoOct 21, 2021
  18. Victoria DyeOct 27, 2021
  19. 0/3 sparse-index: expand/collapse based on 'index.sparse'Victoria Dye via GitGitGadget, Oct 27, 2021
  20. 1/3 test-read-cache.c: prepare_repo_settings after config initVictoria Dye via GitGitGadget, Oct 27, 2021
  21. 2/3 sparse-index: add ensure_correct_sparsity functionVictoria Dye via GitGitGadget, Oct 27, 2021
  22. Derrick StoleeOct 27, 2021
  23. Junio C HamanoOct 27, 2021
  24. Derrick StoleeOct 28, 2021
  25. Victoria DyeOct 29, 2021
  26. 3/3 sparse-index: update do_read_index to ensure correct sparsityVictoria Dye via GitGitGadget, Oct 27, 2021
  27. Derrick StoleeOct 27, 2021
  28. 0/4 sparse-index: expand/collapse based on 'index.sparse'Victoria Dye via GitGitGadget, Oct 29, 2021
  29. 1/4 test-read-cache.c: prepare_repo_settings after config initVictoria Dye via GitGitGadget, Oct 29, 2021
  30. 2/4 sparse-index: avoid unnecessary cache tree clearingVictoria Dye via GitGitGadget, Oct 29, 2021
  31. Junio C HamanoOct 29, 2021
  32. Derrick StoleeOct 29, 2021
  33. Junio C HamanoOct 29, 2021
  34. 4/4 sparse-index: update do_read_index to ensure correct sparsityVictoria Dye via GitGitGadget, Oct 29, 2021
  35. Elijah NewrenNov 22, 2021
  36. Victoria DyeNov 22, 2021
  37. 3/4 sparse-index: add ensure_correct_sparsity functionVictoria Dye via GitGitGadget, Oct 29, 2021
  38. Elijah NewrenNov 22, 2021
  39. 0/4 sparse-index: expand/collapse based on 'index.sparse'Victoria Dye via GitGitGadget, Nov 23, 2021
  40. 1/4 test-read-cache.c: prepare_repo_settings after config initVictoria Dye via GitGitGadget, Nov 23, 2021
  41. 2/4 sparse-index: avoid unnecessary cache tree clearingVictoria Dye via GitGitGadget, Nov 23, 2021
  42. 3/4 sparse-index: add ensure_correct_sparsity functionVictoria Dye via GitGitGadget, Nov 23, 2021
  43. 4/4 sparse-index: update do_read_index to ensure correct sparsityVictoria Dye via GitGitGadget, Nov 23, 2021
  44. Elijah NewrenNov 23, 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.