81
test_cmp expect actual
82
'
83
84
-test_expect_success '--recurse-submodules does not support using path arguments' '
85
- test_must_fail git ls-files --recurse-submodules b 2>actual &&
86
- test_i18ngrep "does not support pathspec" actual
84
+test_expect_success '--recurse-submodules and pathspecs setup' '
85
+ echo e >submodule/subsub/e.txt &&
86
+ git -C submodule/subsub add e.txt &&
87
+ git -C submodule/subsub commit -m "adding e.txt" &&
88
+ echo f >submodule/f.TXT &&
89
+ echo g >submodule/g.txt &&
90
+ git -C submodule add f.TXT g.txt &&
91
+ git -C submodule commit -m "add f and g" &&
92
+ echo h >h.txt &&
93
+ mkdir sib &&
94
+ echo sib >sib/file &&
95
+ git add h.txt sib/file &&
96
+ git commit -m "add h and sib/file" &&
97
+ git init sub &&
98
+ echo sub >sub/file &&
99
+ git -C sub add file &&
100
+ git -C sub commit -m "add file" &&
101
+ git submodule add ./sub &&
102
+ git commit -m "added sub" &&
103
+
104
+ cat >expect <<-\EOF &&
105
+ .gitmodules
106
+ a
107
+ b/b
108
+ h.txt
109
+ sib/file
110
+ sub/file
111
+ submodule/.gitmodules
112
+ submodule/c
113
+ submodule/f.TXT
114
+ submodule/g.txt
115
+ submodule/subsub/d
116
+ submodule/subsub/e.txt
117
+ EOF
118
+
119
+ git ls-files --recurse-submodules >actual &&
120
+ test_cmp expect actual &&
121
+ cat actual &&
122
+ git ls-files --recurse-submodules "*" >actual &&
123
+ test_cmp expect actual
124
+'
125
+
126
+test_expect_success '--recurse-submodules and pathspecs' '
127
+ cat >expect <<-\EOF &&
128
+ h.txt
129
+ submodule/g.txt
130
+ submodule/subsub/e.txt
131
+ EOF
132
+
133
+ git ls-files --recurse-submodules "*.txt" >actual &&
134
+ test_cmp expect actual
135
+'
136
+
137
+test_expect_success '--recurse-submodules and pathspecs' '
138
+ cat >expect <<-\EOF &&
139
+ h.txt
140
+ submodule/f.TXT
141
+ submodule/g.txt
142
+ submodule/subsub/e.txt
143
+ EOF
144
+
145
+ git ls-files --recurse-submodules ":(icase)*.txt" >actual &&
146
+ test_cmp expect actual
147
+'
148
+
149
+test_expect_success '--recurse-submodules and pathspecs' '
150
+ cat >expect <<-\EOF &&
151
+ h.txt
152
+ submodule/f.TXT
153
+ submodule/g.txt
154
+ EOF
155
+
156
+ git ls-files --recurse-submodules ":(icase)*.txt" ":(exclude)submodule/subsub/*" >actual &&
157
+ test_cmp expect actual
158
+'
159
+
160
+test_expect_success '--recurse-submodules and pathspecs' '
161
+ cat >expect <<-\EOF &&
162
+ sub/file
163
+ EOF
164
+
165
+ git ls-files --recurse-submodules "sub" >actual &&
166
+ test_cmp expect actual &&
167
+ git ls-files --recurse-submodules "sub/" >actual &&
168
+ test_cmp expect actual &&
169
+ git ls-files --recurse-submodules "sub/file" >actual &&
170
+ test_cmp expect actual &&
171
+ git ls-files --recurse-submodules "su*/file" >actual &&
172
+ test_cmp expect actual &&
173
+ git ls-files --recurse-submodules "su?/file" >actual &&
174
+ test_cmp expect actual
175
+'
176
+
177
+test_expect_success '--recurse-submodules and pathspecs' '
178
+ cat >expect <<-\EOF &&
179
+ sib/file
180
+ sub/file
181
+ EOF
182
+
183
+ git ls-files --recurse-submodules "s??/file" >actual &&
184
+ test_cmp expect actual &&
185
+ git ls-files --recurse-submodules "s???file" >actual &&
186
+ test_cmp expect actual &&
187
+ git ls-files --recurse-submodules "s*file" >actual &&
188
+ test_cmp expect actual
189
'
190
191
test_expect_success '--recurse-submodules does not support --error-unmatch' '