Skip to content

Commit 8d6ba49

Browse files
matvoregitster
authored andcommitted
tests: order arguments to git-rev-list properly
It is a common mistake to put positional arguments before flags when invoking git-rev-list. Order the positional arguments last. This patch skips git-rev-list invocations which include the --not flag, since the ordering of flags and positional arguments affects the behavior. This patch also skips invocations of git-rev-list that occur in command substitution in which the exit code is discarded, since fixing those properly will require a more involved cleanup. Signed-off-by: Matthew DeVore <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent b00b6ac commit 8d6ba49

File tree

3 files changed

+44
-29
lines changed

3 files changed

+44
-29
lines changed

t/t5616-partial-clone.sh

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ test_expect_success 'setup bare clone for server' '
3535
test_expect_success 'do partial clone 1' '
3636
git clone --no-checkout --filter=blob:none "file://$(pwd)/srv.bare" pc1 &&
3737
38-
git -C pc1 rev-list HEAD --quiet --objects --missing=print >revs &&
38+
git -C pc1 rev-list --quiet --objects --missing=print HEAD >revs &&
3939
awk -f print_1.awk revs |
4040
sed "s/?//" |
4141
sort >observed.oids &&
@@ -48,10 +48,10 @@ test_expect_success 'do partial clone 1' '
4848

4949
# checkout master to force dynamic object fetch of blobs at HEAD.
5050
test_expect_success 'verify checkout with dynamic object fetch' '
51-
git -C pc1 rev-list HEAD --quiet --objects --missing=print >observed &&
51+
git -C pc1 rev-list --quiet --objects --missing=print HEAD >observed &&
5252
test_line_count = 4 observed &&
5353
git -C pc1 checkout master &&
54-
git -C pc1 rev-list HEAD --quiet --objects --missing=print >observed &&
54+
git -C pc1 rev-list --quiet --objects --missing=print HEAD >observed &&
5555
test_line_count = 0 observed
5656
'
5757

@@ -74,15 +74,17 @@ test_expect_success 'push new commits to server' '
7474
# have the new blobs.
7575
test_expect_success 'partial fetch inherits filter settings' '
7676
git -C pc1 fetch origin &&
77-
git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
77+
git -C pc1 rev-list --quiet --objects --missing=print \
78+
master..origin/master >observed &&
7879
test_line_count = 5 observed
7980
'
8081

8182
# force dynamic object fetch using diff.
8283
# we should only get 1 new blob (for the file in origin/master).
8384
test_expect_success 'verify diff causes dynamic object fetch' '
8485
git -C pc1 diff master..origin/master -- file.1.txt &&
85-
git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
86+
git -C pc1 rev-list --quiet --objects --missing=print \
87+
master..origin/master >observed &&
8688
test_line_count = 4 observed
8789
'
8890

@@ -91,7 +93,8 @@ test_expect_success 'verify diff causes dynamic object fetch' '
9193
test_expect_success 'verify blame causes dynamic object fetch' '
9294
git -C pc1 blame origin/master -- file.1.txt >observed.blame &&
9395
test_cmp expect.blame observed.blame &&
94-
git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
96+
git -C pc1 rev-list --quiet --objects --missing=print \
97+
master..origin/master >observed &&
9598
test_line_count = 0 observed
9699
'
97100

@@ -111,7 +114,8 @@ test_expect_success 'push new commits to server for file.2.txt' '
111114
# Verify we have all the new blobs.
112115
test_expect_success 'override inherited filter-spec using --no-filter' '
113116
git -C pc1 fetch --no-filter origin &&
114-
git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
117+
git -C pc1 rev-list --quiet --objects --missing=print \
118+
master..origin/master >observed &&
115119
test_line_count = 0 observed
116120
'
117121

@@ -133,17 +137,17 @@ test_expect_success 'push new commits to server for file.3.txt' '
133137
test_expect_success 'manual prefetch of missing objects' '
134138
git -C pc1 fetch --filter=blob:none origin &&
135139
136-
git -C pc1 rev-list master..origin/master --quiet --objects --missing=print \
137-
>revs &&
140+
git -C pc1 rev-list --quiet --objects --missing=print \
141+
master..origin/master >revs &&
138142
awk -f print_1.awk revs |
139143
sed "s/?//" |
140144
sort >observed.oids &&
141145
142146
test_line_count = 6 observed.oids &&
143147
git -C pc1 fetch-pack --stdin "file://$(pwd)/srv.bare" <observed.oids &&
144148
145-
git -C pc1 rev-list master..origin/master --quiet --objects --missing=print \
146-
>revs &&
149+
git -C pc1 rev-list --quiet --objects --missing=print \
150+
master..origin/master >revs &&
147151
awk -f print_1.awk revs |
148152
sed "s/?//" |
149153
sort >observed.oids &&

t/t5702-protocol-v2.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ test_expect_success 'partial clone' '
271271
grep "version 2" trace &&
272272
273273
# Ensure that the old version of the file is missing
274-
git -C client rev-list master --quiet --objects --missing=print \
274+
git -C client rev-list --quiet --objects --missing=print master \
275275
>observed.oids &&
276276
grep "$(git -C server rev-parse message1:a.txt)" observed.oids &&
277277
@@ -297,7 +297,7 @@ test_expect_success 'partial fetch' '
297297
grep "version 2" trace &&
298298
299299
# Ensure that the old version of the file is missing
300-
git -C client rev-list other --quiet --objects --missing=print \
300+
git -C client rev-list --quiet --objects --missing=print other \
301301
>observed.oids &&
302302
grep "$(git -C server rev-parse message1:a.txt)" observed.oids &&
303303

t/t6112-rev-list-filters-objects.sh

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,8 @@ test_expect_success 'verify blob:none omits all 5 blobs' '
2525
awk -f print_2.awk ls_files_result |
2626
sort >expected &&
2727
28-
git -C r1 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:none >revs &&
28+
git -C r1 rev-list --quiet --objects --filter-print-omitted \
29+
--filter=blob:none HEAD >revs &&
2930
awk -f print_1.awk revs |
3031
sed "s/~//" |
3132
sort >observed &&
@@ -34,12 +35,12 @@ test_expect_success 'verify blob:none omits all 5 blobs' '
3435
'
3536

3637
test_expect_success 'verify emitted+omitted == all' '
37-
git -C r1 rev-list HEAD --objects >revs &&
38+
git -C r1 rev-list --objects HEAD >revs &&
3839
awk -f print_1.awk revs |
3940
sort >expected &&
4041
41-
git -C r1 rev-list HEAD --objects --filter-print-omitted --filter=blob:none \
42-
>revs &&
42+
git -C r1 rev-list --objects --filter-print-omitted --filter=blob:none \
43+
HEAD >revs &&
4344
awk -f print_1.awk revs |
4445
sed "s/~//" |
4546
sort >observed &&
@@ -68,7 +69,8 @@ test_expect_success 'verify blob:limit=500 omits all blobs' '
6869
awk -f print_2.awk ls_files_result |
6970
sort >expected &&
7071
71-
git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=500 >revs &&
72+
git -C r2 rev-list --quiet --objects --filter-print-omitted \
73+
--filter=blob:limit=500 HEAD >revs &&
7274
awk -f print_1.awk revs |
7375
sed "s/~//" |
7476
sort >observed &&
@@ -77,11 +79,12 @@ test_expect_success 'verify blob:limit=500 omits all blobs' '
7779
'
7880

7981
test_expect_success 'verify emitted+omitted == all' '
80-
git -C r2 rev-list HEAD --objects >revs &&
82+
git -C r2 rev-list --objects HEAD >revs &&
8183
awk -f print_1.awk revs |
8284
sort >expected &&
8385
84-
git -C r2 rev-list HEAD --objects --filter-print-omitted --filter=blob:limit=500 >revs &&
86+
git -C r2 rev-list --objects --filter-print-omitted \
87+
--filter=blob:limit=500 HEAD >revs &&
8588
awk -f print_1.awk revs |
8689
sed "s/~//" |
8790
sort >observed &&
@@ -94,7 +97,8 @@ test_expect_success 'verify blob:limit=1000' '
9497
awk -f print_2.awk ls_files_result |
9598
sort >expected &&
9699
97-
git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1000 >revs &&
100+
git -C r2 rev-list --quiet --objects --filter-print-omitted \
101+
--filter=blob:limit=1000 HEAD >revs &&
98102
awk -f print_1.awk revs |
99103
sed "s/~//" |
100104
sort >observed &&
@@ -107,7 +111,8 @@ test_expect_success 'verify blob:limit=1001' '
107111
awk -f print_2.awk ls_files_result |
108112
sort >expected &&
109113
110-
git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1001 >revs &&
114+
git -C r2 rev-list --quiet --objects --filter-print-omitted \
115+
--filter=blob:limit=1001 HEAD >revs &&
111116
awk -f print_1.awk revs |
112117
sed "s/~//" |
113118
sort >observed &&
@@ -120,7 +125,8 @@ test_expect_success 'verify blob:limit=1k' '
120125
awk -f print_2.awk ls_files_result |
121126
sort >expected &&
122127
123-
git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1k >revs &&
128+
git -C r2 rev-list --quiet --objects --filter-print-omitted \
129+
--filter=blob:limit=1k HEAD >revs &&
124130
awk -f print_1.awk revs |
125131
sed "s/~//" |
126132
sort >observed &&
@@ -129,7 +135,8 @@ test_expect_success 'verify blob:limit=1k' '
129135
'
130136

131137
test_expect_success 'verify blob:limit=1m' '
132-
git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1m >revs &&
138+
git -C r2 rev-list --quiet --objects --filter-print-omitted \
139+
--filter=blob:limit=1m HEAD >revs &&
133140
awk -f print_1.awk revs |
134141
sed "s/~//" |
135142
sort >observed &&
@@ -162,7 +169,8 @@ test_expect_success 'verify sparse:path=pattern1 omits top-level files' '
162169
awk -f print_2.awk ls_files_result |
163170
sort >expected &&
164171
165-
git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:path=../pattern1 >revs &&
172+
git -C r3 rev-list --quiet --objects --filter-print-omitted \
173+
--filter=sparse:path=../pattern1 HEAD >revs &&
166174
awk -f print_1.awk revs |
167175
sed "s/~//" |
168176
sort >observed &&
@@ -175,7 +183,8 @@ test_expect_success 'verify sparse:path=pattern2 omits both sparse2 files' '
175183
awk -f print_2.awk ls_files_result |
176184
sort >expected &&
177185
178-
git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:path=../pattern2 >revs &&
186+
git -C r3 rev-list --quiet --objects --filter-print-omitted \
187+
--filter=sparse:path=../pattern2 HEAD >revs &&
179188
awk -f print_1.awk revs |
180189
sed "s/~//" |
181190
sort >observed &&
@@ -200,7 +209,8 @@ test_expect_success 'verify sparse:oid=OID omits top-level files' '
200209
201210
oid=$(git -C r3 ls-files -s pattern | awk -f print_2.awk) &&
202211
203-
git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:oid=$oid >revs &&
212+
git -C r3 rev-list --quiet --objects --filter-print-omitted \
213+
--filter=sparse:oid=$oid HEAD >revs &&
204214
awk -f print_1.awk revs |
205215
sed "s/~//" |
206216
sort >observed &&
@@ -213,7 +223,8 @@ test_expect_success 'verify sparse:oid=oid-ish omits top-level files' '
213223
awk -f print_2.awk ls_files_result |
214224
sort >expected &&
215225
216-
git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:oid=master:pattern >revs &&
226+
git -C r3 rev-list --quiet --objects --filter-print-omitted \
227+
--filter=sparse:oid=master:pattern HEAD >revs &&
217228
awk -f print_1.awk revs |
218229
sed "s/~//" |
219230
sort >observed &&
@@ -235,7 +246,7 @@ test_expect_success 'rev-list W/ --missing=print' '
235246
rm r1/.git/objects/$id
236247
done &&
237248
238-
git -C r1 rev-list --quiet HEAD --missing=print --objects >revs &&
249+
git -C r1 rev-list --quiet --missing=print --objects HEAD >revs &&
239250
awk -f print_1.awk revs |
240251
sed "s/?//" |
241252
sort >observed &&

0 commit comments

Comments
 (0)