Re: [PATCH v2 3/5] t1092: replace 'read-cache --table' with 'ls-files --sparse'
- From
Elijah Newren <newren@gmail.com>
- Date
- Dec 9, 2021, 05:19 UTC
- Message-ID
- <CABPp-BGQh2qNHKGmxr7rUqzyCjVpY=o2QB9qv6S8arz-mVm51Q@mail.gmail.com>
- In-Reply-To
- <5ffae2a03ae3d00a1f128d7cf2a397081055a2fe.1638992396.git.gitgitgadget@gmail.com>
On Wed, Dec 8, 2021 at 11:39 AM Derrick Stolee via GitGitGadget <gitgitgadget@gmail.com> wrote:
Show 64 quoted lines
>
> From: Derrick Stolee <dstolee@microsoft.com>
>
> Now that 'git ls-files --sparse' exists, we can use it to verify the
> state of a sparse index instead of 'test-tool read-cache table'. Replace
> these usages within t1092-sparse-checkout-compatibility.sh.
>
> The important changes are due to the different output format. We need to
> use the '--stage' output to get a file mode and OID, but it also
> includes a stage value and drops the object type. This leads to some
> differences in how we handle looking for specific entries.
>
> Some places where we previously looked for no 'tree' entries, we can
> instead directly compare the output across the repository with a sparse
> index and the one without.
>
> Signed-off-by: Derrick Stolee <dstolee@microsoft.com>
> ---
> t/t1092-sparse-checkout-compatibility.sh | 29 +++++++++++-------------
> 1 file changed, 13 insertions(+), 16 deletions(-)
>
> diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh
> index bf2c6b169b9..4a6832ea3c5 100755
> --- a/t/t1092-sparse-checkout-compatibility.sh
> +++ b/t/t1092-sparse-checkout-compatibility.sh
> @@ -200,45 +200,42 @@ test_sparse_unstaged () {
> test_expect_success 'sparse-index contents' '
> init_repos &&
>
> - test-tool -C sparse-index read-cache --table >cache &&
> + git -C sparse-index ls-files --sparse --stage >cache &&
> for dir in folder1 folder2 x
> do
> TREE=$(git -C sparse-index rev-parse HEAD:$dir) &&
> - grep "040000 tree $TREE $dir/" cache \
> + grep "040000 $TREE 0 $dir/" cache \
> || return 1
> done &&
>
> git -C sparse-index sparse-checkout set folder1 &&
>
> - test-tool -C sparse-index read-cache --table >cache &&
> + git -C sparse-index ls-files --sparse --stage >cache &&
> for dir in deep folder2 x
> do
> TREE=$(git -C sparse-index rev-parse HEAD:$dir) &&
> - grep "040000 tree $TREE $dir/" cache \
> + grep "040000 $TREE 0 $dir/" cache \
> || return 1
> done &&
>
> git -C sparse-index sparse-checkout set deep/deeper1 &&
>
> - test-tool -C sparse-index read-cache --table >cache &&
> + git -C sparse-index ls-files --sparse --stage >cache &&
> for dir in deep/deeper2 folder1 folder2 x
> do
> TREE=$(git -C sparse-index rev-parse HEAD:$dir) &&
> - grep "040000 tree $TREE $dir/" cache \
> + grep "040000 $TREE 0 $dir/" cache \
> || return 1
> done &&
>
> # Disabling the sparse-index removes tree entries with full onesNot the fault of this patch, but perhaps worth fixing "removes" -> "replaces" while you're making fixes in this area?
Show 47 quoted lines
> git -C sparse-index sparse-checkout init --no-sparse-index && > - > - test-tool -C sparse-index read-cache --table >cache && > - ! grep "040000 tree" cache && > - test_sparse_match test-tool read-cache --table > + test_sparse_match git ls-files --stage --sparse > ' > > test_expect_success 'expanded in-memory index matches full index' ' > init_repos && > - test_sparse_match test-tool read-cache --expand --table > + test_sparse_match git ls-files --stage > ' > > test_expect_success 'status with options' ' > @@ -787,9 +784,9 @@ test_expect_success 'submodule handling' ' > > # having a submodule prevents "modules" from collapse > test_sparse_match git sparse-checkout set deep/deeper1 && > - test-tool -C sparse-index read-cache --table >cache && > - grep "100644 blob .* modules/a" cache && > - grep "160000 commit $(git -C initial-repo rev-parse HEAD) modules/sub" cache > + git -C sparse-index ls-files --sparse --stage >cache && > + grep "100644 .* modules/a" cache && > + grep "160000 $(git -C initial-repo rev-parse HEAD) 0 modules/sub" cache > ' > > # When working with a sparse index, some commands will need to expand the > @@ -1079,13 +1076,13 @@ test_expect_success 'reset mixed and checkout orphan' ' > # the sparse checkouts skip "adding" the other side of > # the conflict. > test_sparse_match git reset --mixed HEAD~1 && > - test_sparse_match test-tool read-cache --table --expand && > + test_sparse_match git ls-files --stage && > test_sparse_match git status --porcelain=v2 && > > # At this point, sparse-checkouts behave differently > # from the full-checkout. > test_sparse_match git checkout --orphan new-branch && > - test_sparse_match test-tool read-cache --table --expand && > + test_sparse_match git ls-files --stage && > test_sparse_match git status --porcelain=v2 > ' > > -- > gitgitgadget >