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 <matvore@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Matthew DeVore committed Oct 5, 2018 at 14:54 UTC 8d6ba49563600d8e65c7f56fb0f29e23a571a75f
3 files changed +44 -29
t/t5616-partial-clone.sh
+15 -11
@@ -35,7 +35,7 @@ test_expect_success 'setup bare clone for server' '
35 test_expect_success 'do partial clone 1' '
36 git clone --no-checkout --filter=blob:none "file://$(pwd)/srv.bare" pc1 &&
37
38 - git -C pc1 rev-list HEAD --quiet --objects --missing=print >revs &&
38 + git -C pc1 rev-list --quiet --objects --missing=print HEAD >revs &&
39 awk -f print_1.awk revs |
40 sed "s/?//" |
41 sort >observed.oids &&
@@ -48,10 +48,10 @@ test_expect_success 'do partial clone 1' '
48
49 # checkout master to force dynamic object fetch of blobs at HEAD.
50 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 &&
52 test_line_count = 4 observed &&
53 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 &&
55 test_line_count = 0 observed
56 '
57
@@ -74,7 +74,8 @@ test_expect_success 'push new commits to server' '
74 # have the new blobs.
75 test_expect_success 'partial fetch inherits filter settings' '
76 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 &&
79 test_line_count = 5 observed
80 '
81
@@ -82,7 +83,8 @@ test_expect_success 'partial fetch inherits filter settings' '
83 # we should only get 1 new blob (for the file in origin/master).
84 test_expect_success 'verify diff causes dynamic object fetch' '
85 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 &&
88 test_line_count = 4 observed
89 '
90
@@ -91,7 +93,8 @@ test_expect_success 'verify diff causes dynamic object fetch' '
93 test_expect_success 'verify blame causes dynamic object fetch' '
94 git -C pc1 blame origin/master -- file.1.txt >observed.blame &&
95 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 &&
98 test_line_count = 0 observed
99 '
100
@@ -111,7 +114,8 @@ test_expect_success 'push new commits to server for file.2.txt' '
114 # Verify we have all the new blobs.
115 test_expect_success 'override inherited filter-spec using --no-filter' '
116 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 &&
119 test_line_count = 0 observed
120 '
121
@@ -133,8 +137,8 @@ test_expect_success 'push new commits to server for file.3.txt' '
137 test_expect_success 'manual prefetch of missing objects' '
138 git -C pc1 fetch --filter=blob:none origin &&
139
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 &&
142 awk -f print_1.awk revs |
143 sed "s/?//" |
144 sort >observed.oids &&
@@ -142,8 +146,8 @@ test_expect_success 'manual prefetch of missing objects' '
146 test_line_count = 6 observed.oids &&
147 git -C pc1 fetch-pack --stdin "file://$(pwd)/srv.bare" <observed.oids &&
148
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 &&
151 awk -f print_1.awk revs |
152 sed "s/?//" |
153 sort >observed.oids &&
t/t5702-protocol-v2.sh
+2 -2
@@ -271,7 +271,7 @@ test_expect_success 'partial clone' '
271 grep "version 2" trace &&
272
273 # 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 \
275 >observed.oids &&
276 grep "$(git -C server rev-parse message1:a.txt)" observed.oids &&
277
@@ -297,7 +297,7 @@ test_expect_success 'partial fetch' '
297 grep "version 2" trace &&
298
299 # 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 \
301 >observed.oids &&
302 grep "$(git -C server rev-parse message1:a.txt)" observed.oids &&
303
t/t6112-rev-list-filters-objects.sh
+27 -16
@@ -25,7 +25,8 @@ test_expect_success 'verify blob:none omits all 5 blobs' '
25 awk -f print_2.awk ls_files_result |
26 sort >expected &&
27
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 &&
30 awk -f print_1.awk revs |
31 sed "s/~//" |
32 sort >observed &&
@@ -34,12 +35,12 @@ test_expect_success 'verify blob:none omits all 5 blobs' '
35 '
36
37 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 &&
39 awk -f print_1.awk revs |
40 sort >expected &&
41
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 &&
44 awk -f print_1.awk revs |
45 sed "s/~//" |
46 sort >observed &&
@@ -68,7 +69,8 @@ test_expect_success 'verify blob:limit=500 omits all blobs' '
69 awk -f print_2.awk ls_files_result |
70 sort >expected &&
71
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 &&
74 awk -f print_1.awk revs |
75 sed "s/~//" |
76 sort >observed &&
@@ -77,11 +79,12 @@ test_expect_success 'verify blob:limit=500 omits all blobs' '
79 '
80
81 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 &&
83 awk -f print_1.awk revs |
84 sort >expected &&
85
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 &&
88 awk -f print_1.awk revs |
89 sed "s/~//" |
90 sort >observed &&
@@ -94,7 +97,8 @@ test_expect_success 'verify blob:limit=1000' '
97 awk -f print_2.awk ls_files_result |
98 sort >expected &&
99
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 &&
102 awk -f print_1.awk revs |
103 sed "s/~//" |
104 sort >observed &&
@@ -107,7 +111,8 @@ test_expect_success 'verify blob:limit=1001' '
111 awk -f print_2.awk ls_files_result |
112 sort >expected &&
113
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 &&
116 awk -f print_1.awk revs |
117 sed "s/~//" |
118 sort >observed &&
@@ -120,7 +125,8 @@ test_expect_success 'verify blob:limit=1k' '
125 awk -f print_2.awk ls_files_result |
126 sort >expected &&
127
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 &&
130 awk -f print_1.awk revs |
131 sed "s/~//" |
132 sort >observed &&
@@ -129,7 +135,8 @@ test_expect_success 'verify blob:limit=1k' '
135 '
136
137 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 &&
140 awk -f print_1.awk revs |
141 sed "s/~//" |
142 sort >observed &&
@@ -162,7 +169,8 @@ test_expect_success 'verify sparse:path=pattern1 omits top-level files' '
169 awk -f print_2.awk ls_files_result |
170 sort >expected &&
171
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 &&
174 awk -f print_1.awk revs |
175 sed "s/~//" |
176 sort >observed &&
@@ -175,7 +183,8 @@ test_expect_success 'verify sparse:path=pattern2 omits both sparse2 files' '
183 awk -f print_2.awk ls_files_result |
184 sort >expected &&
185
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 &&
188 awk -f print_1.awk revs |
189 sed "s/~//" |
190 sort >observed &&
@@ -200,7 +209,8 @@ test_expect_success 'verify sparse:oid=OID omits top-level files' '
209
210 oid=$(git -C r3 ls-files -s pattern | awk -f print_2.awk) &&
211
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 &&
214 awk -f print_1.awk revs |
215 sed "s/~//" |
216 sort >observed &&
@@ -213,7 +223,8 @@ test_expect_success 'verify sparse:oid=oid-ish omits top-level files' '
223 awk -f print_2.awk ls_files_result |
224 sort >expected &&
225
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 &&
228 awk -f print_1.awk revs |
229 sed "s/~//" |
230 sort >observed &&
@@ -235,7 +246,7 @@ test_expect_success 'rev-list W/ --missing=print' '
246 rm r1/.git/objects/$id
247 done &&
248
238 - git -C r1 rev-list --quiet HEAD --missing=print --objects >revs &&
249 + git -C r1 rev-list --quiet --missing=print --objects HEAD >revs &&
250 awk -f print_1.awk revs |
251 sed "s/?//" |
252 sort >observed &&