@@ -9,13 +9,13 @@ submodules.
9
9
. ./test-lib.sh
10
10
11
11
test_expect_success ' setup directory structure and submodule' '
12
- echo "foobar " >a &&
12
+ echo "(1|2)d(3|4) " >a &&
13
13
mkdir b &&
14
- echo "bar " >b/b &&
14
+ echo "(3|4) " >b/b &&
15
15
git add a b &&
16
16
git commit -m "add a and b" &&
17
17
git init submodule &&
18
- echo "foobar " >submodule/a &&
18
+ echo "(1|2)d(3|4) " >submodule/a &&
19
19
git -C submodule add a &&
20
20
git -C submodule commit -m "add a" &&
21
21
git submodule add ./submodule &&
@@ -24,18 +24,18 @@ test_expect_success 'setup directory structure and submodule' '
24
24
25
25
test_expect_success ' grep correctly finds patterns in a submodule' '
26
26
cat >expect <<-\EOF &&
27
- a:foobar
28
- b/b:bar
29
- submodule/a:foobar
27
+ a:(1|2)d(3|4)
28
+ b/b:(3|4)
29
+ submodule/a:(1|2)d(3|4)
30
30
EOF
31
31
32
- git grep -e "bar " --recurse-submodules >actual &&
32
+ git grep -e "(3|4) " --recurse-submodules >actual &&
33
33
test_cmp expect actual
34
34
'
35
35
36
36
test_expect_success ' grep and basic pathspecs' '
37
37
cat >expect <<-\EOF &&
38
- submodule/a:foobar
38
+ submodule/a:(1|2)d(3|4)
39
39
EOF
40
40
41
41
git grep -e. --recurse-submodules -- submodule >actual &&
@@ -44,7 +44,7 @@ test_expect_success 'grep and basic pathspecs' '
44
44
45
45
test_expect_success ' grep and nested submodules' '
46
46
git init submodule/sub &&
47
- echo "foobar " >submodule/sub/a &&
47
+ echo "(1|2)d(3|4) " >submodule/sub/a &&
48
48
git -C submodule/sub add a &&
49
49
git -C submodule/sub commit -m "add a" &&
50
50
git -C submodule submodule add ./sub &&
@@ -54,251 +54,251 @@ test_expect_success 'grep and nested submodules' '
54
54
git commit -m "updated submodule" &&
55
55
56
56
cat >expect <<-\EOF &&
57
- a:foobar
58
- b/b:bar
59
- submodule/a:foobar
60
- submodule/sub/a:foobar
57
+ a:(1|2)d(3|4)
58
+ b/b:(3|4)
59
+ submodule/a:(1|2)d(3|4)
60
+ submodule/sub/a:(1|2)d(3|4)
61
61
EOF
62
62
63
- git grep -e "bar " --recurse-submodules >actual &&
63
+ git grep -e "(3|4) " --recurse-submodules >actual &&
64
64
test_cmp expect actual
65
65
'
66
66
67
67
test_expect_success ' grep and multiple patterns' '
68
68
cat >expect <<-\EOF &&
69
- a:foobar
70
- submodule/a:foobar
71
- submodule/sub/a:foobar
69
+ a:(1|2)d(3|4)
70
+ submodule/a:(1|2)d(3|4)
71
+ submodule/sub/a:(1|2)d(3|4)
72
72
EOF
73
73
74
- git grep -e "bar " --and -e "foo " --recurse-submodules >actual &&
74
+ git grep -e "(3|4) " --and -e "(1|2) " --recurse-submodules >actual &&
75
75
test_cmp expect actual
76
76
'
77
77
78
78
test_expect_success ' grep and multiple patterns' '
79
79
cat >expect <<-\EOF &&
80
- b/b:bar
80
+ b/b:(3|4)
81
81
EOF
82
82
83
- git grep -e "bar " --and --not -e "foo " --recurse-submodules >actual &&
83
+ git grep -e "(3|4) " --and --not -e "(1|2) " --recurse-submodules >actual &&
84
84
test_cmp expect actual
85
85
'
86
86
87
87
test_expect_success ' basic grep tree' '
88
88
cat >expect <<-\EOF &&
89
- HEAD:a:foobar
90
- HEAD:b/b:bar
91
- HEAD:submodule/a:foobar
92
- HEAD:submodule/sub/a:foobar
89
+ HEAD:a:(1|2)d(3|4)
90
+ HEAD:b/b:(3|4)
91
+ HEAD:submodule/a:(1|2)d(3|4)
92
+ HEAD:submodule/sub/a:(1|2)d(3|4)
93
93
EOF
94
94
95
- git grep -e "bar " --recurse-submodules HEAD >actual &&
95
+ git grep -e "(3|4) " --recurse-submodules HEAD >actual &&
96
96
test_cmp expect actual
97
97
'
98
98
99
99
test_expect_success ' grep tree HEAD^' '
100
100
cat >expect <<-\EOF &&
101
- HEAD^:a:foobar
102
- HEAD^:b/b:bar
103
- HEAD^:submodule/a:foobar
101
+ HEAD^:a:(1|2)d(3|4)
102
+ HEAD^:b/b:(3|4)
103
+ HEAD^:submodule/a:(1|2)d(3|4)
104
104
EOF
105
105
106
- git grep -e "bar " --recurse-submodules HEAD^ >actual &&
106
+ git grep -e "(3|4) " --recurse-submodules HEAD^ >actual &&
107
107
test_cmp expect actual
108
108
'
109
109
110
110
test_expect_success ' grep tree HEAD^^' '
111
111
cat >expect <<-\EOF &&
112
- HEAD^^:a:foobar
113
- HEAD^^:b/b:bar
112
+ HEAD^^:a:(1|2)d(3|4)
113
+ HEAD^^:b/b:(3|4)
114
114
EOF
115
115
116
- git grep -e "bar " --recurse-submodules HEAD^^ >actual &&
116
+ git grep -e "(3|4) " --recurse-submodules HEAD^^ >actual &&
117
117
test_cmp expect actual
118
118
'
119
119
120
120
test_expect_success ' grep tree and pathspecs' '
121
121
cat >expect <<-\EOF &&
122
- HEAD:submodule/a:foobar
123
- HEAD:submodule/sub/a:foobar
122
+ HEAD:submodule/a:(1|2)d(3|4)
123
+ HEAD:submodule/sub/a:(1|2)d(3|4)
124
124
EOF
125
125
126
- git grep -e "bar " --recurse-submodules HEAD -- submodule >actual &&
126
+ git grep -e "(3|4) " --recurse-submodules HEAD -- submodule >actual &&
127
127
test_cmp expect actual
128
128
'
129
129
130
130
test_expect_success ' grep tree and pathspecs' '
131
131
cat >expect <<-\EOF &&
132
- HEAD:submodule/a:foobar
133
- HEAD:submodule/sub/a:foobar
132
+ HEAD:submodule/a:(1|2)d(3|4)
133
+ HEAD:submodule/sub/a:(1|2)d(3|4)
134
134
EOF
135
135
136
- git grep -e "bar " --recurse-submodules HEAD -- "submodule*a" >actual &&
136
+ git grep -e "(3|4) " --recurse-submodules HEAD -- "submodule*a" >actual &&
137
137
test_cmp expect actual
138
138
'
139
139
140
140
test_expect_success ' grep tree and more pathspecs' '
141
141
cat >expect <<-\EOF &&
142
- HEAD:submodule/a:foobar
142
+ HEAD:submodule/a:(1|2)d(3|4)
143
143
EOF
144
144
145
- git grep -e "bar " --recurse-submodules HEAD -- "submodul?/a" >actual &&
145
+ git grep -e "(3|4) " --recurse-submodules HEAD -- "submodul?/a" >actual &&
146
146
test_cmp expect actual
147
147
'
148
148
149
149
test_expect_success ' grep tree and more pathspecs' '
150
150
cat >expect <<-\EOF &&
151
- HEAD:submodule/sub/a:foobar
151
+ HEAD:submodule/sub/a:(1|2)d(3|4)
152
152
EOF
153
153
154
- git grep -e "bar " --recurse-submodules HEAD -- "submodul*/sub/a" >actual &&
154
+ git grep -e "(3|4) " --recurse-submodules HEAD -- "submodul*/sub/a" >actual &&
155
155
test_cmp expect actual
156
156
'
157
157
158
158
test_expect_success ! MINGW ' grep recurse submodule colon in name' '
159
159
git init parent &&
160
160
test_when_finished "rm -rf parent" &&
161
- echo "foobar " >"parent/fi:le" &&
161
+ echo "(1|2)d(3|4) " >"parent/fi:le" &&
162
162
git -C parent add "fi:le" &&
163
163
git -C parent commit -m "add fi:le" &&
164
164
165
165
git init "su:b" &&
166
166
test_when_finished "rm -rf su:b" &&
167
- echo "foobar " >"su:b/fi:le" &&
167
+ echo "(1|2)d(3|4) " >"su:b/fi:le" &&
168
168
git -C "su:b" add "fi:le" &&
169
169
git -C "su:b" commit -m "add fi:le" &&
170
170
171
171
git -C parent submodule add "../su:b" "su:b" &&
172
172
git -C parent commit -m "add submodule" &&
173
173
174
174
cat >expect <<-\EOF &&
175
- fi:le:foobar
176
- su:b/fi:le:foobar
175
+ fi:le:(1|2)d(3|4)
176
+ su:b/fi:le:(1|2)d(3|4)
177
177
EOF
178
- git -C parent grep -e "foobar " --recurse-submodules >actual &&
178
+ git -C parent grep -e "(1|2)d(3|4) " --recurse-submodules >actual &&
179
179
test_cmp expect actual &&
180
180
181
181
cat >expect <<-\EOF &&
182
- HEAD:fi:le:foobar
183
- HEAD:su:b/fi:le:foobar
182
+ HEAD:fi:le:(1|2)d(3|4)
183
+ HEAD:su:b/fi:le:(1|2)d(3|4)
184
184
EOF
185
- git -C parent grep -e "foobar " --recurse-submodules HEAD >actual &&
185
+ git -C parent grep -e "(1|2)d(3|4) " --recurse-submodules HEAD >actual &&
186
186
test_cmp expect actual
187
187
'
188
188
189
189
test_expect_success ' grep history with moved submoules' '
190
190
git init parent &&
191
191
test_when_finished "rm -rf parent" &&
192
- echo "foobar " >parent/file &&
192
+ echo "(1|2)d(3|4) " >parent/file &&
193
193
git -C parent add file &&
194
194
git -C parent commit -m "add file" &&
195
195
196
196
git init sub &&
197
197
test_when_finished "rm -rf sub" &&
198
- echo "foobar " >sub/file &&
198
+ echo "(1|2)d(3|4) " >sub/file &&
199
199
git -C sub add file &&
200
200
git -C sub commit -m "add file" &&
201
201
202
202
git -C parent submodule add ../sub dir/sub &&
203
203
git -C parent commit -m "add submodule" &&
204
204
205
205
cat >expect <<-\EOF &&
206
- dir/sub/file:foobar
207
- file:foobar
206
+ dir/sub/file:(1|2)d(3|4)
207
+ file:(1|2)d(3|4)
208
208
EOF
209
- git -C parent grep -e "foobar " --recurse-submodules >actual &&
209
+ git -C parent grep -e "(1|2)d(3|4) " --recurse-submodules >actual &&
210
210
test_cmp expect actual &&
211
211
212
212
git -C parent mv dir/sub sub-moved &&
213
213
git -C parent commit -m "moved submodule" &&
214
214
215
215
cat >expect <<-\EOF &&
216
- file:foobar
217
- sub-moved/file:foobar
216
+ file:(1|2)d(3|4)
217
+ sub-moved/file:(1|2)d(3|4)
218
218
EOF
219
- git -C parent grep -e "foobar " --recurse-submodules >actual &&
219
+ git -C parent grep -e "(1|2)d(3|4) " --recurse-submodules >actual &&
220
220
test_cmp expect actual &&
221
221
222
222
cat >expect <<-\EOF &&
223
- HEAD^:dir/sub/file:foobar
224
- HEAD^:file:foobar
223
+ HEAD^:dir/sub/file:(1|2)d(3|4)
224
+ HEAD^:file:(1|2)d(3|4)
225
225
EOF
226
- git -C parent grep -e "foobar " --recurse-submodules HEAD^ >actual &&
226
+ git -C parent grep -e "(1|2)d(3|4) " --recurse-submodules HEAD^ >actual &&
227
227
test_cmp expect actual
228
228
'
229
229
230
230
test_expect_success ' grep using relative path' '
231
231
test_when_finished "rm -rf parent sub" &&
232
232
git init sub &&
233
- echo "foobar " >sub/file &&
233
+ echo "(1|2)d(3|4) " >sub/file &&
234
234
git -C sub add file &&
235
235
git -C sub commit -m "add file" &&
236
236
237
237
git init parent &&
238
- echo "foobar " >parent/file &&
238
+ echo "(1|2)d(3|4) " >parent/file &&
239
239
git -C parent add file &&
240
240
mkdir parent/src &&
241
- echo "foobar " >parent/src/file2 &&
241
+ echo "(1|2)d(3|4) " >parent/src/file2 &&
242
242
git -C parent add src/file2 &&
243
243
git -C parent submodule add ../sub &&
244
244
git -C parent commit -m "add files and submodule" &&
245
245
246
246
# From top works
247
247
cat >expect <<-\EOF &&
248
- file:foobar
249
- src/file2:foobar
250
- sub/file:foobar
248
+ file:(1|2)d(3|4)
249
+ src/file2:(1|2)d(3|4)
250
+ sub/file:(1|2)d(3|4)
251
251
EOF
252
- git -C parent grep --recurse-submodules -e "foobar " >actual &&
252
+ git -C parent grep --recurse-submodules -e "(1|2)d(3|4) " >actual &&
253
253
test_cmp expect actual &&
254
254
255
255
# Relative path to top
256
256
cat >expect <<-\EOF &&
257
- ../file:foobar
258
- file2:foobar
259
- ../sub/file:foobar
257
+ ../file:(1|2)d(3|4)
258
+ file2:(1|2)d(3|4)
259
+ ../sub/file:(1|2)d(3|4)
260
260
EOF
261
- git -C parent/src grep --recurse-submodules -e "foobar " -- .. >actual &&
261
+ git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4) " -- .. >actual &&
262
262
test_cmp expect actual &&
263
263
264
264
# Relative path to submodule
265
265
cat >expect <<-\EOF &&
266
- ../sub/file:foobar
266
+ ../sub/file:(1|2)d(3|4)
267
267
EOF
268
- git -C parent/src grep --recurse-submodules -e "foobar " -- ../sub >actual &&
268
+ git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4) " -- ../sub >actual &&
269
269
test_cmp expect actual
270
270
'
271
271
272
272
test_expect_success ' grep from a subdir' '
273
273
test_when_finished "rm -rf parent sub" &&
274
274
git init sub &&
275
- echo "foobar " >sub/file &&
275
+ echo "(1|2)d(3|4) " >sub/file &&
276
276
git -C sub add file &&
277
277
git -C sub commit -m "add file" &&
278
278
279
279
git init parent &&
280
280
mkdir parent/src &&
281
- echo "foobar " >parent/src/file &&
281
+ echo "(1|2)d(3|4) " >parent/src/file &&
282
282
git -C parent add src/file &&
283
283
git -C parent submodule add ../sub src/sub &&
284
284
git -C parent submodule add ../sub sub &&
285
285
git -C parent commit -m "add files and submodules" &&
286
286
287
287
# Verify grep from root works
288
288
cat >expect <<-\EOF &&
289
- src/file:foobar
290
- src/sub/file:foobar
291
- sub/file:foobar
289
+ src/file:(1|2)d(3|4)
290
+ src/sub/file:(1|2)d(3|4)
291
+ sub/file:(1|2)d(3|4)
292
292
EOF
293
- git -C parent grep --recurse-submodules -e "foobar " >actual &&
293
+ git -C parent grep --recurse-submodules -e "(1|2)d(3|4) " >actual &&
294
294
test_cmp expect actual &&
295
295
296
296
# Verify grep from a subdir works
297
297
cat >expect <<-\EOF &&
298
- file:foobar
299
- sub/file:foobar
298
+ file:(1|2)d(3|4)
299
+ sub/file:(1|2)d(3|4)
300
300
EOF
301
- git -C parent/src grep --recurse-submodules -e "foobar " >actual &&
301
+ git -C parent/src grep --recurse-submodules -e "(1|2)d(3|4) " >actual &&
302
302
test_cmp expect actual
303
303
'
304
304
0 commit comments