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@gmail.com>
## 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