diff options
author | Derrick Stolee <derrickstolee@github.com> | 2022-04-26 20:43:20 (GMT) |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2022-04-26 20:56:39 (GMT) |
commit | 124b05b23005437fa5fb91863bde2a8f5840e164 (patch) | |
tree | 0cd13eaa15f19fe4d15297d9b26516edda3e4ed3 /t/t1092-sparse-checkout-compatibility.sh | |
parent | 4925adb4dac1f794cc5d5c82dee49e2f5f47560f (diff) | |
download | git-124b05b23005437fa5fb91863bde2a8f5840e164.zip git-124b05b23005437fa5fb91863bde2a8f5840e164.tar.gz git-124b05b23005437fa5fb91863bde2a8f5840e164.tar.bz2 |
rev-parse: integrate with sparse index
It is not obvious that the 'git rev-parse' builtin would use the sparse
index, but it is possible to parse paths out of the index using the
":<path>" syntax. The 'git rev-parse' output is only the OID of the
object found at that location, but otherwise behaves similarly to 'git
show :<path>'. This includes the failure conditions on directories and
the error messages depending on whether a path is in the worktree or
not.
The only code change required is to change the
command_requires_full_index setting in builtin/rev-parse.c, and we can
re-use many existing 'git show' tests for the rev-parse case.
Signed-off-by: Derrick Stolee <derrickstolee@github.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t1092-sparse-checkout-compatibility.sh')
-rwxr-xr-x | t/t1092-sparse-checkout-compatibility.sh | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh index fa1d560..93bcfd2 100755 --- a/t/t1092-sparse-checkout-compatibility.sh +++ b/t/t1092-sparse-checkout-compatibility.sh @@ -1151,29 +1151,32 @@ test_expect_success 'clean' ' test_sparse_match test_path_is_dir folder1 ' -test_expect_success 'show (cached blobs/trees)' ' - init_repos && +for builtin in show rev-parse +do + test_expect_success "$builtin (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 && + test_all_match git $builtin :a && + test_all_match git $builtin :deep/a && + test_sparse_match git $builtin :folder1/a && - # The error message differs depending on whether - # the directory exists in the worktree. - 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/ && + # The error message differs depending on whether + # the directory exists in the worktree. + test_all_match test_must_fail git $builtin :deep/ && + test_must_fail git -C full-checkout $builtin :folder1/ && + test_sparse_match test_must_fail git $builtin :folder1/ && - # Change the sparse cone for an extra case: - run_on_sparse git sparse-checkout set deep/deeper1 && + # Change the sparse cone for an extra case: + run_on_sparse git sparse-checkout set deep/deeper1 && - # deep/deeper2 is a sparse directory in the sparse index. - test_sparse_match test_must_fail git show :deep/deeper2/ && + # deep/deeper2 is a sparse directory in the sparse index. + test_sparse_match test_must_fail git $builtin :deep/deeper2/ && - # deep/deeper2/deepest is not in the sparse index, but - # will trigger an index expansion. - test_sparse_match test_must_fail git show :deep/deeper2/deepest/ -' + # deep/deeper2/deepest is not in the sparse index, but + # will trigger an index expansion. + test_sparse_match test_must_fail git $builtin :deep/deeper2/deepest/ + " +done test_expect_success 'submodule handling' ' init_repos && @@ -1396,11 +1399,13 @@ test_expect_success 'sparse index is not expanded: diff' ' ensure_not_expanded diff --cached ' -test_expect_success 'sparse index is not expanded: show' ' +test_expect_success 'sparse index is not expanded: show and rev-parse' ' init_repos && ensure_not_expanded show :a && - ensure_not_expanded show :deep/a + ensure_not_expanded show :deep/a && + ensure_not_expanded rev-parse :a && + ensure_not_expanded rev-parse :deep/a ' test_expect_success 'sparse index is not expanded: update-index' ' |