Signed-off-by: Shuqi Liang <cheskaqiqi@xxxxxxxxx> --- 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