[RFC PATCH 1/1] check-attr: integrate with sparse-index
Signed-off-by: Shuqi Liang <cheskaqiqi@gmail.com>
---
builtin/check-attr.c | 3 +++
t/t1092-sparse-checkout-compatibility.sh | 19 +++++++++++++++++++
2 files changed, 22 insertions(+)
diff --git a/builtin/check-attr.c b/builtin/check-attr.c
index 0fef10eb6b..f85b91ebba 100644
--- a/builtin/check-attr.c
+++ b/builtin/check-attr.c
@@ -112,6 +112,9 @@ int cmd_check_attr(int argc, const char **argv, const char *prefix)
git_config(git_default_config, NULL);
+ prepare_repo_settings(the_repository);
+ the_repository->settings.command_requires_full_index = 0;
+
argc = parse_options(argc, argv, prefix, check_attr_options,
check_attr_usage, PARSE_OPT_KEEP_DASHDASH);
diff --git a/t/t1092-sparse-checkout-compatibility.sh b/t/t1092-sparse-checkout-compatibility.sh
index 801919009e..b28010aa5c 100755
--- a/t/t1092-sparse-checkout-compatibility.sh
+++ b/t/t1092-sparse-checkout-compatibility.sh
@@ -2055,4 +2055,23 @@ test_expect_success 'grep sparse directory within submodules' '
test_cmp actual expect
'
+test_expect_success 'check-attr pathspec inside sparse definition' '
+ init_repos &&
+
+ run_on_all touch deep/test.c &&
+ echo "*.c diff=cpp -crlf myAttr" >>.gitattributes &&
+ run_on_all cp ../.gitattributes . &&
+ test_all_match git add .gitattributes &&
+ test_all_match git commit -m "add .gitattributes" &&
+
+ run_on_all git reset --hard &&
+ test_all_match echo "deep/test.c" | git check-attr --stdin -a &&
+
+ run_on_all git reset --hard &&
+ test_all_match git check-attr -a deep/test.c &&
+
+ run_on_all git reset --hard &&
+ test_all_match git check-attr -a --cached deep/test.c
+'
+
test_done
--
2.39.0