3 # Copyright (c) 2008 Nguyễn Thái Ngọc Duy
6 test_description
='skip-worktree bit test'
8 TEST_PASSES_SANITIZE_LEAK
=true
11 sane_unset GIT_TEST_SPLIT_INDEX
13 test_set_index_version
() {
14 GIT_INDEX_VERSION
="$1"
15 export GIT_INDEX_VERSION
18 test_set_index_version
3
20 cat >expect.full
<<EOF
27 cat >expect.skip
<<EOF
34 test_expect_success
'setup' '
36 touch ./1 ./2 sub/1 sub/2 &&
37 git add 1 2 sub/1 sub/2 &&
38 git ls-files -t | test_cmp expect.full -
41 test_expect_success
'index is at version 2' '
42 test "$(test-tool index-version < .git/index)" = 2
45 test_expect_success
'update-index --skip-worktree' '
46 git update-index --skip-worktree 1 sub/1 &&
47 git ls-files -t | test_cmp expect.skip -
50 test_expect_success
'index is at version 3 after having some skip-worktree entries' '
51 test "$(test-tool index-version < .git/index)" = 3
54 test_expect_success
'ls-files -t' '
55 git ls-files -t | test_cmp expect.skip -
58 test_expect_success
'update-index --no-skip-worktree' '
59 git update-index --no-skip-worktree 1 sub/1 &&
60 git ls-files -t | test_cmp expect.full -
63 test_expect_success
'index version is back to 2 when there is no skip-worktree entry' '
64 test "$(test-tool index-version < .git/index)" = 2