Subject: Re: [PATCH 1/4] t1092: add compatibility tests for 'git show'

From: Josh Steadmon <[email-masked]>
Date: Thu, 14 Apr 2022 11:37:26 -0700

On 2022.04.07 16:37, Derrick Stolee via GitGitGadget wrote:
> From: Derrick Stolee <[email-masked]>
> 
> Signed-off-by: Derrick Stolee <[email-masked]>
> ---
>  t/t1092-sparse-checkout-compatibility.sh | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 
> diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh
> index 236ab530284..74792b5ebbc 100755
> --- a/t/t1092-sparse-checkout-compatibility.sh
> +++ b/t/t1092-sparse-checkout-compatibility.sh
> @@ -1151,6 +1151,22 @@ test_expect_success 'clean' '
>  	test_sparse_match test_path_is_dir folder1
>  '
>  
> +test_expect_success 'show (cached blobs/trees)' '
> +	init_repos &&
> +
> +	test_all_match git show :a &&
> +	test_all_match git show :deep/a &&
> +	test_sparse_match git show :folder1/a &&
> +
> +	# Asking "git show" for directories in the index
> +	# does not work as implemented. The error message is
> +	# different for a full checkout and a sparse checkout
> +	# when the directory is outside of the cone.
> +	test_all_match test_must_fail git show :deep/ &&
> +	test_must_fail git -C full-checkout show :folder1/ &&
> +	test_sparse_match test_must_fail git show :folder1/
> +'

A reminder that directories are not present in a non-sparse index would
help those of us unfamiliar with the differences between
sparse/non-sparse indexes to understand why the full-checkout cases fail
here. Initially I was confused why any of these lookups would fail
because my mental model was "a sparse-index is a proper subset of the
non-sparse index".

> +
>  test_expect_success 'submodule handling' '
>  	init_repos &&
>  
> -- 
> gitgitgadget
>