On Wed, Mar 10, 2021 at 11:31 AM Derrick Stolee via GitGitGadget <gitgitgadget@xxxxxxxxx> wrote: > > From: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > > Add a new 'sparse-index' repo alongside the 'full-checkout' and > 'sparse-checkout' repos in t1092-sparse-checkout-compatibility.sh. Also > add run_on_sparse and test_sparse_match helpers. These helpers will be > used when the sparse index is implemented. > > Add GIT_TEST_SPARSE_INDEX environment variable to enable the > sparse-index by default. This will be intended to use across the entire > test suite, except that it will only affect cases where the > sparse-checkout feature is enabled. This last sentence was a bit awkward to read. "will be intended to use" -> "is intended to be used"? > > Signed-off-by: Derrick Stolee <dstolee@xxxxxxxxxxxxx> > --- > t/README | 3 +++ > t/t1092-sparse-checkout-compatibility.sh | 24 ++++++++++++++++++++---- > 2 files changed, 23 insertions(+), 4 deletions(-) > > diff --git a/t/README b/t/README > index 593d4a4e270c..b98bc563aab5 100644 > --- a/t/README > +++ b/t/README > @@ -439,6 +439,9 @@ and "sha256". > GIT_TEST_WRITE_REV_INDEX=<boolean>, when true enables the > 'pack.writeReverseIndex' setting. > > +GIT_TEST_SPARSE_INDEX=<boolean>, when true enables index writes to use the > +sparse-index format by default. > + > Naming Tests > ------------ > > diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh > index 3725d3997e70..71d6f9e4c014 100755 > --- a/t/t1092-sparse-checkout-compatibility.sh > +++ b/t/t1092-sparse-checkout-compatibility.sh > @@ -7,6 +7,7 @@ test_description='compare full workdir to sparse workdir' > test_expect_success 'setup' ' > git init initial-repo && > ( > + GIT_TEST_SPARSE_INDEX=0 && > cd initial-repo && > echo a >a && > echo "after deep" >e && > @@ -87,23 +88,32 @@ init_repos () { > > cp -r initial-repo sparse-checkout && > git -C sparse-checkout reset --hard && > - git -C sparse-checkout sparse-checkout init --cone && > + > + cp -r initial-repo sparse-index && > + git -C sparse-index reset --hard && > > # initialize sparse-checkout definitions > - git -C sparse-checkout sparse-checkout set deep > + git -C sparse-checkout sparse-checkout init --cone && > + git -C sparse-checkout sparse-checkout set deep && > + GIT_TEST_SPARSE_INDEX=1 git -C sparse-index sparse-checkout init --cone && > + GIT_TEST_SPARSE_INDEX=1 git -C sparse-index sparse-checkout set deep > } > > run_on_sparse () { > ( > cd sparse-checkout && > - "$@" >../sparse-checkout-out 2>../sparse-checkout-err > + GIT_TEST_SPARSE_INDEX=0 "$@" >../sparse-checkout-out 2>../sparse-checkout-err > + ) && > + ( > + cd sparse-index && > + GIT_TEST_SPARSE_INDEX=1 "$@" >../sparse-index-out 2>../sparse-index-err > ) > } > > run_on_all () { > ( > cd full-checkout && > - "$@" >../full-checkout-out 2>../full-checkout-err > + GIT_TEST_SPARSE_INDEX=0 "$@" >../full-checkout-out 2>../full-checkout-err > ) && > run_on_sparse "$@" > } > @@ -114,6 +124,12 @@ test_all_match () { > test_cmp full-checkout-err sparse-checkout-err > } > > +test_sparse_match () { > + run_on_sparse $* && Should this be run_on_sparse "$@" in order to allow arguments with spaces? > + test_cmp sparse-checkout-out sparse-index-out && > + test_cmp sparse-checkout-err sparse-index-err > +} > + > test_expect_success 'status with options' ' > init_repos && > test_all_match git status --porcelain=v2 && > -- > gitgitgadget >