"Derrick Stolee via GitGitGadget" <gitgitgadget@xxxxxxxxx> writes: > From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > > Disable command_requires_full_index for 'git add'. This does not require > any additional removals of ensure_full_index(). The main reason is that > 'git add' discovers changes based on the pathspec and the worktree > itself. These are then inserted into the index directly, and calls to > index_name_pos() or index_file_exists() already call expand_to_path() at > the appropriate time to support a sparse-index. OK. With that explained, it still is quite surprising that we only need this change (eh, rather, doing this change is safe without doing anything else). > - # This "git add folder1/a" fails with a warning > - # in the sparse repos, differing from the full > - # repo. This is intentional. > - test_sparse_match test_must_fail git add folder1/a && > - test_sparse_match test_must_fail git add --refresh folder1/a && > - test_all_match git status --porcelain=v2 && And nice to see a known limitation lifted. > test_all_match git add . && > test_all_match git status --porcelain=v2 && > test_all_match git commit -m folder1/new && > @@ -635,7 +628,12 @@ test_expect_success 'sparse-index is not expanded' ' > git -C sparse-index reset --hard && > ensure_not_expanded checkout rename-out-to-out -- deep/deeper1 && > git -C sparse-index reset --hard && > - ensure_not_expanded restore -s rename-out-to-out -- deep/deeper1 > + ensure_not_expanded restore -s rename-out-to-out -- deep/deeper1 && > + > + echo >>sparse-index/README.md && > + ensure_not_expanded add -A && > + echo >>sparse-index/extra.txt && > + ensure_not_expanded add extra.txt > ' > > # NEEDSWORK: a sparse-checkout behaves differently from a full checkout