Re: [PATCH 2/5] add: allow operating on a sparse-only index
From: Junio C Hamano <hidden>
Date: 2021-07-21 22:19:47
"Derrick Stolee via GitGitGadget" [off-list ref] writes:
From: Derrick Stolee <redacted> 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.
quoted hunk
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