change against v1: * update a new commit message with more details * update read_attr_from_index function * add smudge/clean filters in test 'merge with conflict outside cone' * add the missing perf test * only verifying behavior in 'sparse-index' in test 'sparse-index is not expanded: check-attr' * show that the index is also not expanded files outside of the sparse-checkout cone Shuqi Liang (3): Enable gitattributes read from sparse directories t1092: add tests for `git check-attr` check-attr: integrate with sparse-index attr.c | 42 +++++++++--------- builtin/check-attr.c | 3 ++ t/perf/p2000-sparse-operations.sh | 1 + t/t1092-sparse-checkout-compatibility.sh | 55 ++++++++++++++++++++++++ 4 files changed, 80 insertions(+), 21 deletions(-) Range-diff against v1: 1: afa27ebe2d < -: ---------- attr.c: read attributes in a sparse directory -: ---------- > 1: 0ff2ab9430 Enable gitattributes read from sparse directories 2: 5bb40b0327 ! 2: 835e1176b0 t1092: add tests for `git check-attr` @@ Metadata ## Commit message ## t1092: add tests for `git check-attr` + Add smudge/clean filters in .gitattributes files inside the affected + sparse directories in test 'merge with conflict outside cone', make sure + it behaves as expected when path is outside of sparse-checkout. + Add tests for `git check-attr`, make sure it behaves as expected when path is both inside or outside of sparse-checkout definition. @@ Commit message Signed-off-by: Shuqi Liang <cheskaqiqi@xxxxxxxxx> ## t/t1092-sparse-checkout-compatibility.sh ## +@@ t/t1092-sparse-checkout-compatibility.sh: test_expect_success 'merge with conflict outside cone' ' + + test_all_match git checkout -b merge-tip merge-left && + test_all_match git status --porcelain=v2 && ++ ++ echo "a filter=rot13" >>.gitattributes && ++ run_on_sparse mkdir folder1 && ++ run_on_all cp ../.gitattributes ./folder1 && ++ git -C full-checkout add folder1/.gitattributes && ++ run_on_sparse git add --sparse folder1/.gitattributes && ++ run_on_all git commit -m "add .gitattributes" && ++ test_sparse_match git sparse-checkout reapply && ++ git config filter.rot13.clean "tr 'A-Za-z' 'N-ZA-Mn-za-m'" && ++ git config filter.rot13.smudge "tr 'A-Za-z' 'N-ZA-Mn-za-m'" && ++ + test_all_match test_must_fail git merge -m merge merge-right && + test_all_match git status --porcelain=v2 && + @@ t/t1092-sparse-checkout-compatibility.sh: test_expect_success 'worktree is not expanded' ' ensure_not_expanded worktree remove .worktrees/hotfix ' 3: abd14ddda7 < -: ---------- check-attr: integrate with sparse-index -: ---------- > 3: 672d692e51 check-attr: integrate with sparse-index -- 2.39.0