On 5/25/2023 9:32 PM, Victoria Dye via GitGitGadget wrote: > About a year ago, discussion on the sparse index integration of 'git grep' > surfaced larger incompatibilities between sparse-checkout and submodules > [1]. This series fixes one of the underlying issues to that incompatibility, > which is that the worktree config of the submodule (where > 'core.sparseCheckout', 'core.sparseCheckoutCone', and 'index.sparse' are > set) is not used when operating on the submodule from its super project > (e.g., in a command with '--recurse-submodules'). > > The outcome of this series is that 'extensions.worktreeConfig' and the > contents of the repository's worktree config are read and applied to (and > only to) the relevant repo when working in a super project/submodule setup. > This alone doesn't fix sparse-checkout/submodule interoperability; the > additional changes needed for that will be submitted in a later series. I'm > also hoping this will help (or at least not hurt) the work to avoid use of > global state in config parsing [2]. > > > Changes since V1 > ================ > > * In 't3007', replaced manual 'git config'/'test_when_finished "git config > --unset"' pairs with 'test_config' helper. Updated 'test_config' to > handle the '--worktree' option. > * Updated commit messages & test comments to better explain the purpose and > more subtle functionality details to the new tests > * Added a commit to move 'struct repository' out of 'git_config_source', > rather than creating a dummy 'config_source' just to hold a repository > instance. > * Changed the config setting in the new tests from 'feature.experimental' > to 'index.sparse' to tie these changes to their intended use case. > * "super project" -> "superproject" Thanks for these updates. I'm happy with this version. Thanks, -Stolee