Message ID | a92825e502f1795910b869165779279b89212939.1725052243.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Mark cat-file sparse-index compatible | expand |
On 8/30/24 5:10 PM, Kevin Lyles via GitGitGadget wrote: > From: Kevin Lyles <klyles+github@epic.com> > +test_expect_success 'cat-file -p' ' > + init_repos && > + echo "new content" >>full-checkout/deep/a && > + echo "new content" >>sparse-checkout/deep/a && > + echo "new content" >>sparse-index/deep/a && > + run_on_all git add deep/a && > + > + test_all_match git cat-file -p :deep/a && > + ensure_not_expanded cat-file -p :deep/a && > + test_all_match git cat-file -p :folder1/a && > + ensure_expanded cat-file -p :folder1/a' There's one style issue that I missed in the previous version, which is that the final single-quote (') should be on a new line after the last line of the test. like this: --- test_all_match git cat-file -p :folder1/a && ensure_expanded cat-file -p :folder1/a ' --- > +test_expect_success 'cat-file --batch' ' > + init_repos && > + echo "new content" >>full-checkout/deep/a && > + echo "new content" >>sparse-checkout/deep/a && > + echo "new content" >>sparse-index/deep/a && > + run_on_all git add deep/a && > + > + echo ":deep/a">in && > + test_all_match git cat-file --batch <in && > + ensure_not_expanded cat-file --batch <in && > + > + echo ":folder1/a">in && > + test_all_match git cat-file --batch <in && > + ensure_expanded cat-file --batch <in && > + > + cat <<-\EOF >in && nit: typically we would write this as "cat >in <<-\EOF &&" > + :deep/a > + :folder1/a > + EOF > + test_all_match git cat-file --batch <in && > + ensure_expanded cat-file --batch <in' > + Pointing out the final single-quote here, too. Thank you for updating the heredocs and other format things that I noticed in the previous version. Also, thanks for splitting the patch into two parts. Thanks for working on this! -Stolee
Derrick Stolee <stolee@gmail.com> writes: > Thank you for updating the heredocs and other format things that > I noticed in the previous version. Also, thanks for splitting the > patch into two parts. > > Thanks for working on this! Yup. It seems that the patches are getting almost ready? Thanks for a detailed review.
diff --git a/builtin/cat-file.c b/builtin/cat-file.c index 18fe58d6b8b..1afdfb5cbae 100644 --- a/builtin/cat-file.c +++ b/builtin/cat-file.c @@ -1047,6 +1047,9 @@ int cmd_cat_file(int argc, const char **argv, const char *prefix) if (batch.buffer_output < 0) batch.buffer_output = batch.all_objects; + prepare_repo_settings(the_repository); + the_repository->settings.command_requires_full_index = 0; + /* Return early if we're in batch mode? */ if (batch.enabled) { if (opt_cw) diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh index b140b642b21..4d025c5f8d6 100755 --- a/t/t1092-sparse-checkout-compatibility.sh +++ b/t/t1092-sparse-checkout-compatibility.sh @@ -2349,4 +2349,38 @@ test_expect_success 'advice.sparseIndexExpanded' ' grep "The sparse index is expanding to a full index" err ' +test_expect_success 'cat-file -p' ' + init_repos && + echo "new content" >>full-checkout/deep/a && + echo "new content" >>sparse-checkout/deep/a && + echo "new content" >>sparse-index/deep/a && + run_on_all git add deep/a && + + test_all_match git cat-file -p :deep/a && + ensure_not_expanded cat-file -p :deep/a && + test_all_match git cat-file -p :folder1/a && + ensure_expanded cat-file -p :folder1/a' + +test_expect_success 'cat-file --batch' ' + init_repos && + echo "new content" >>full-checkout/deep/a && + echo "new content" >>sparse-checkout/deep/a && + echo "new content" >>sparse-index/deep/a && + run_on_all git add deep/a && + + echo ":deep/a">in && + test_all_match git cat-file --batch <in && + ensure_not_expanded cat-file --batch <in && + + echo ":folder1/a">in && + test_all_match git cat-file --batch <in && + ensure_expanded cat-file --batch <in && + + cat <<-\EOF >in && + :deep/a + :folder1/a + EOF + test_all_match git cat-file --batch <in && + ensure_expanded cat-file --batch <in' + test_done