3 test_description
='Test ls-files recurse-submodules feature
5 This test verifies the recurse-submodules feature correctly lists files from
11 test_expect_success
'setup directory structure and submodules' '
16 git commit -m "add a and b" &&
18 echo c >submodule/c &&
19 git -C submodule add c &&
20 git -C submodule commit -m "add c" &&
21 git submodule add ./submodule &&
22 git commit -m "added submodule"
25 test_expect_success
'ls-files correctly outputs files in submodule' '
26 cat >expect <<-\EOF &&
33 git ls-files --recurse-submodules >actual &&
34 test_cmp expect actual
37 test_expect_success
'ls-files does not output files not added to a repo' '
38 cat >expect <<-\EOF &&
46 echo b >b/not_added &&
47 echo c >submodule/not_added &&
48 git ls-files --recurse-submodules >actual &&
49 test_cmp expect actual
52 test_expect_success
'ls-files recurses more than 1 level' '
53 cat >expect <<-\EOF &&
62 git init submodule/subsub &&
63 echo d >submodule/subsub/d &&
64 git -C submodule/subsub add d &&
65 git -C submodule/subsub commit -m "add d" &&
66 git -C submodule submodule add ./subsub &&
67 git -C submodule commit -m "added subsub" &&
68 git ls-files --recurse-submodules >actual &&
69 test_cmp expect actual
72 test_expect_success
'--recurse-submodules does not support using path arguments' '
73 test_must_fail git ls-files --recurse-submodules b 2>actual &&
74 test_i18ngrep "does not support pathspec" actual
77 test_expect_success
'--recurse-submodules does not support --error-unmatch' '
78 test_must_fail git ls-files --recurse-submodules --error-unmatch 2>actual &&
79 test_i18ngrep "does not support --error-unmatch" actual
82 test_incompatible_with_recurse_submodules
() {
83 test_expect_success
"--recurse-submodules and $1 are incompatible" "
84 test_must_fail git ls-files --recurse-submodules $1 2>actual &&
85 test_i18ngrep 'unsupported mode' actual
89 test_incompatible_with_recurse_submodules
-z
90 test_incompatible_with_recurse_submodules
-v
91 test_incompatible_with_recurse_submodules
-t
92 test_incompatible_with_recurse_submodules
--deleted
93 test_incompatible_with_recurse_submodules
--modified
94 test_incompatible_with_recurse_submodules
--others
95 test_incompatible_with_recurse_submodules
--stage
96 test_incompatible_with_recurse_submodules
--killed
97 test_incompatible_with_recurse_submodules
--unmerged
98 test_incompatible_with_recurse_submodules
--eol