From: Matthew DeVore <matvore@google.com>
To: git@vger.kernel.org
Cc: Matthew DeVore <matvore@google.com>,
peff@peff.net, jonathantanmy@google.com, gitster@pobox.com,
jrn@google.com, sunshine@sunshineco.com, szeder.dev@gmail.com
Subject: [PATCH v5 7/7] tests: order arguments to git-rev-list properly
Date: Fri, 5 Oct 2018 14:54:07 -0700 [thread overview]
Message-ID: <6f639eec9ed57ecd17431b215430541da8ff250b.1538775186.git.matvore@google.com> (raw)
In-Reply-To: <cover.1538775186.git.matvore@google.com>
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>
---
t/t5616-partial-clone.sh | 26 +++++++++--------
t/t5702-protocol-v2.sh | 4 +--
t/t6112-rev-list-filters-objects.sh | 43 ++++++++++++++++++-----------
3 files changed, 44 insertions(+), 29 deletions(-)
diff --git a/t/t5616-partial-clone.sh b/t/t5616-partial-clone.sh
index fc7aeb1ab..6ff614692 100755
--- a/t/t5616-partial-clone.sh
+++ b/t/t5616-partial-clone.sh
@@ -35,7 +35,7 @@ test_expect_success 'setup bare clone for server' '
test_expect_success 'do partial clone 1' '
git clone --no-checkout --filter=blob:none "file://$(pwd)/srv.bare" pc1 &&
- git -C pc1 rev-list HEAD --quiet --objects --missing=print >revs &&
+ git -C pc1 rev-list --quiet --objects --missing=print HEAD >revs &&
awk -f print_1.awk revs |
sed "s/?//" |
sort >observed.oids &&
@@ -48,10 +48,10 @@ test_expect_success 'do partial clone 1' '
# checkout master to force dynamic object fetch of blobs at HEAD.
test_expect_success 'verify checkout with dynamic object fetch' '
- git -C pc1 rev-list HEAD --quiet --objects --missing=print >observed &&
+ git -C pc1 rev-list --quiet --objects --missing=print HEAD >observed &&
test_line_count = 4 observed &&
git -C pc1 checkout master &&
- git -C pc1 rev-list HEAD --quiet --objects --missing=print >observed &&
+ git -C pc1 rev-list --quiet --objects --missing=print HEAD >observed &&
test_line_count = 0 observed
'
@@ -74,7 +74,8 @@ test_expect_success 'push new commits to server' '
# have the new blobs.
test_expect_success 'partial fetch inherits filter settings' '
git -C pc1 fetch origin &&
- git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ master..origin/master >observed &&
test_line_count = 5 observed
'
@@ -82,7 +83,8 @@ test_expect_success 'partial fetch inherits filter settings' '
# we should only get 1 new blob (for the file in origin/master).
test_expect_success 'verify diff causes dynamic object fetch' '
git -C pc1 diff master..origin/master -- file.1.txt &&
- git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ master..origin/master >observed &&
test_line_count = 4 observed
'
@@ -91,7 +93,8 @@ test_expect_success 'verify diff causes dynamic object fetch' '
test_expect_success 'verify blame causes dynamic object fetch' '
git -C pc1 blame origin/master -- file.1.txt >observed.blame &&
test_cmp expect.blame observed.blame &&
- git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ master..origin/master >observed &&
test_line_count = 0 observed
'
@@ -111,7 +114,8 @@ test_expect_success 'push new commits to server for file.2.txt' '
# Verify we have all the new blobs.
test_expect_success 'override inherited filter-spec using --no-filter' '
git -C pc1 fetch --no-filter origin &&
- git -C pc1 rev-list master..origin/master --quiet --objects --missing=print >observed &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ master..origin/master >observed &&
test_line_count = 0 observed
'
@@ -133,8 +137,8 @@ test_expect_success 'push new commits to server for file.3.txt' '
test_expect_success 'manual prefetch of missing objects' '
git -C pc1 fetch --filter=blob:none origin &&
- git -C pc1 rev-list master..origin/master --quiet --objects --missing=print \
- >revs &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ master..origin/master >revs &&
awk -f print_1.awk revs |
sed "s/?//" |
sort >observed.oids &&
@@ -142,8 +146,8 @@ test_expect_success 'manual prefetch of missing objects' '
test_line_count = 6 observed.oids &&
git -C pc1 fetch-pack --stdin "file://$(pwd)/srv.bare" <observed.oids &&
- git -C pc1 rev-list master..origin/master --quiet --objects --missing=print \
- >revs &&
+ git -C pc1 rev-list --quiet --objects --missing=print \
+ master..origin/master >revs &&
awk -f print_1.awk revs |
sed "s/?//" |
sort >observed.oids &&
diff --git a/t/t5702-protocol-v2.sh b/t/t5702-protocol-v2.sh
index 54727450b..11a84efff 100755
--- a/t/t5702-protocol-v2.sh
+++ b/t/t5702-protocol-v2.sh
@@ -271,7 +271,7 @@ test_expect_success 'partial clone' '
grep "version 2" trace &&
# Ensure that the old version of the file is missing
- git -C client rev-list master --quiet --objects --missing=print \
+ git -C client rev-list --quiet --objects --missing=print master \
>observed.oids &&
grep "$(git -C server rev-parse message1:a.txt)" observed.oids &&
@@ -297,7 +297,7 @@ test_expect_success 'partial fetch' '
grep "version 2" trace &&
# Ensure that the old version of the file is missing
- git -C client rev-list other --quiet --objects --missing=print \
+ git -C client rev-list --quiet --objects --missing=print other \
>observed.oids &&
grep "$(git -C server rev-parse message1:a.txt)" observed.oids &&
diff --git a/t/t6112-rev-list-filters-objects.sh b/t/t6112-rev-list-filters-objects.sh
index b00cf6fa8..53975c572 100755
--- a/t/t6112-rev-list-filters-objects.sh
+++ b/t/t6112-rev-list-filters-objects.sh
@@ -25,7 +25,8 @@ test_expect_success 'verify blob:none omits all 5 blobs' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r1 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:none >revs &&
+ git -C r1 rev-list --quiet --objects --filter-print-omitted \
+ --filter=blob:none HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -34,12 +35,12 @@ test_expect_success 'verify blob:none omits all 5 blobs' '
'
test_expect_success 'verify emitted+omitted == all' '
- git -C r1 rev-list HEAD --objects >revs &&
+ git -C r1 rev-list --objects HEAD >revs &&
awk -f print_1.awk revs |
sort >expected &&
- git -C r1 rev-list HEAD --objects --filter-print-omitted --filter=blob:none \
- >revs &&
+ git -C r1 rev-list --objects --filter-print-omitted --filter=blob:none \
+ HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -68,7 +69,8 @@ test_expect_success 'verify blob:limit=500 omits all blobs' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=500 >revs &&
+ git -C r2 rev-list --quiet --objects --filter-print-omitted \
+ --filter=blob:limit=500 HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -77,11 +79,12 @@ test_expect_success 'verify blob:limit=500 omits all blobs' '
'
test_expect_success 'verify emitted+omitted == all' '
- git -C r2 rev-list HEAD --objects >revs &&
+ git -C r2 rev-list --objects HEAD >revs &&
awk -f print_1.awk revs |
sort >expected &&
- git -C r2 rev-list HEAD --objects --filter-print-omitted --filter=blob:limit=500 >revs &&
+ git -C r2 rev-list --objects --filter-print-omitted \
+ --filter=blob:limit=500 HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -94,7 +97,8 @@ test_expect_success 'verify blob:limit=1000' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1000 >revs &&
+ git -C r2 rev-list --quiet --objects --filter-print-omitted \
+ --filter=blob:limit=1000 HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -107,7 +111,8 @@ test_expect_success 'verify blob:limit=1001' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1001 >revs &&
+ git -C r2 rev-list --quiet --objects --filter-print-omitted \
+ --filter=blob:limit=1001 HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -120,7 +125,8 @@ test_expect_success 'verify blob:limit=1k' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1k >revs &&
+ git -C r2 rev-list --quiet --objects --filter-print-omitted \
+ --filter=blob:limit=1k HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -129,7 +135,8 @@ test_expect_success 'verify blob:limit=1k' '
'
test_expect_success 'verify blob:limit=1m' '
- git -C r2 rev-list HEAD --quiet --objects --filter-print-omitted --filter=blob:limit=1m >revs &&
+ git -C r2 rev-list --quiet --objects --filter-print-omitted \
+ --filter=blob:limit=1m HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -162,7 +169,8 @@ test_expect_success 'verify sparse:path=pattern1 omits top-level files' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:path=../pattern1 >revs &&
+ git -C r3 rev-list --quiet --objects --filter-print-omitted \
+ --filter=sparse:path=../pattern1 HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -175,7 +183,8 @@ test_expect_success 'verify sparse:path=pattern2 omits both sparse2 files' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:path=../pattern2 >revs &&
+ git -C r3 rev-list --quiet --objects --filter-print-omitted \
+ --filter=sparse:path=../pattern2 HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -200,7 +209,8 @@ test_expect_success 'verify sparse:oid=OID omits top-level files' '
oid=$(git -C r3 ls-files -s pattern | awk -f print_2.awk) &&
- git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:oid=$oid >revs &&
+ git -C r3 rev-list --quiet --objects --filter-print-omitted \
+ --filter=sparse:oid=$oid HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -213,7 +223,8 @@ test_expect_success 'verify sparse:oid=oid-ish omits top-level files' '
awk -f print_2.awk ls_files_result |
sort >expected &&
- git -C r3 rev-list HEAD --quiet --objects --filter-print-omitted --filter=sparse:oid=master:pattern >revs &&
+ git -C r3 rev-list --quiet --objects --filter-print-omitted \
+ --filter=sparse:oid=master:pattern HEAD >revs &&
awk -f print_1.awk revs |
sed "s/~//" |
sort >observed &&
@@ -235,7 +246,7 @@ test_expect_success 'rev-list W/ --missing=print' '
rm r1/.git/objects/$id
done &&
- git -C r1 rev-list --quiet HEAD --missing=print --objects >revs &&
+ git -C r1 rev-list --quiet --missing=print --objects HEAD >revs &&
awk -f print_1.awk revs |
sed "s/?//" |
sort >observed &&
--
2.19.0.605.g01d371f741-goog
next prev parent reply other threads:[~2018-10-05 21:54 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-15 0:02 [PATCH v1 0/2] Cleanup tests for test_cmp argument ordering and "|" placement Matthew DeVore
2018-09-15 0:02 ` [PATCH v1 1/2] t/*: fix pipe placement and remove \'s Matthew DeVore
2018-09-17 16:31 ` Jonathan Nieder
2018-09-17 21:47 ` Matthew DeVore
2018-09-15 0:02 ` [PATCH v1 2/2] t/*: fix ordering of expected/observed arguments Matthew DeVore
2018-09-17 12:56 ` Matthew DeVore
2018-09-15 15:55 ` [PATCH v1 0/2] Cleanup tests for test_cmp argument ordering and "|" placement Junio C Hamano
2018-09-17 22:24 ` [PATCH v2 0/6] Clean up tests for test_cmp arg ordering and pipe placement Matthew DeVore
2018-09-17 22:24 ` [PATCH v2 4/6] tests: Add linter check for pipe placement style Matthew DeVore
2018-09-18 0:34 ` Eric Sunshine
2018-09-19 17:39 ` Matthew DeVore
[not found] ` <cover.1537223021.git.matvore@google.com>
2018-09-17 22:24 ` [PATCH v2 1/6] CodingGuidelines: add shell piping guidelines Matthew DeVore
2018-09-18 0:16 ` Eric Sunshine
2018-09-19 2:11 ` Matthew DeVore
2018-09-19 12:36 ` Eric Sunshine
2018-09-19 14:24 ` Junio C Hamano
2018-09-19 20:06 ` Matthew DeVore
2018-09-17 22:24 ` [PATCH v2 2/6] tests: standardize pipe placement Matthew DeVore
2018-09-17 22:24 ` [PATCH v2 3/6] t/*: fix ordering of expected/observed arguments Matthew DeVore
2018-09-17 22:24 ` [PATCH v2 4/6] tests: add linter check for pipe placement style Matthew DeVore
2018-09-17 22:24 ` [PATCH v2 5/6] tests: split up pipes Matthew DeVore
2018-09-18 1:30 ` Eric Sunshine
2018-09-19 2:33 ` Matthew DeVore
2018-09-17 22:24 ` [PATCH v2 6/6] t9109-git-svn-props.sh: split up several pipes Matthew DeVore
2018-09-18 1:56 ` Eric Sunshine
2018-09-19 2:56 ` Matthew DeVore
2018-09-19 12:50 ` Eric Sunshine
2018-09-19 18:43 ` Matthew DeVore
2018-09-21 1:43 ` [PATCH v3 0/5] Clean up tests for test_cmp arg ordering and pipe placement Matthew DeVore
2018-09-21 1:43 ` [PATCH v3 1/5] CodingGuidelines: add shell piping guidelines Matthew DeVore
2018-09-21 2:06 ` Eric Sunshine
2018-09-21 21:03 ` Matthew DeVore
2018-09-24 21:03 ` SZEDER Gábor
2018-09-25 21:58 ` Matthew DeVore
2018-09-27 21:18 ` SZEDER Gábor
2018-10-01 23:07 ` Matthew DeVore
2018-09-21 1:43 ` [PATCH v3 2/5] tests: standardize pipe placement Matthew DeVore
2018-09-21 1:43 ` [PATCH v3 3/5] t/*: fix ordering of expected/observed arguments Matthew DeVore
2018-09-21 1:43 ` [PATCH v3 4/5] tests: don't swallow Git errors upstream of pipes Matthew DeVore
2018-09-21 1:43 ` [PATCH v3 5/5] t9109: " Matthew DeVore
2018-10-03 16:25 ` [PATCH v4 0/7] Clean up tests for test_cmp arg ordering and pipe placement Matthew DeVore
2018-10-03 16:25 ` [PATCH v4 1/7] t/README: reformat Do, Don't, Keep in mind lists Matthew DeVore
2018-10-05 6:15 ` Junio C Hamano
2018-10-05 14:57 ` Matthew DeVore
2018-10-03 16:26 ` [PATCH v4 2/7] Documentation: add shell guidelines Matthew DeVore
2018-10-05 16:48 ` Junio C Hamano
2018-10-05 18:21 ` Matthew DeVore
2018-10-03 16:26 ` [PATCH v4 3/7] tests: standardize pipe placement Matthew DeVore
2018-10-03 16:26 ` [PATCH v4 4/7] t/*: fix ordering of expected/observed arguments Matthew DeVore
2018-10-03 16:26 ` [PATCH v4 5/7] tests: don't swallow Git errors upstream of pipes Matthew DeVore
2018-10-05 16:48 ` Junio C Hamano
2018-10-05 17:54 ` Matthew DeVore
2018-10-05 18:12 ` Matthew DeVore
2018-10-03 16:26 ` [PATCH v4 6/7] t9109: " Matthew DeVore
2018-10-03 16:26 ` [PATCH v4 7/7] tests: order arguments to git-rev-list properly Matthew DeVore
2018-10-03 16:33 ` Matthew DeVore
2018-10-05 8:16 ` Junio C Hamano
2018-10-05 21:54 ` [PATCH v5 0/7] subject: Clean up tests for test_cmp arg ordering and pipe placement Matthew DeVore
2018-10-05 21:54 ` [PATCH v5 1/7] t/README: reformat Do, Don't, Keep in mind lists Matthew DeVore
2018-10-05 21:54 ` [PATCH v5 2/7] Documentation: add shell guidelines Matthew DeVore
2018-10-05 21:54 ` [PATCH v5 3/7] tests: standardize pipe placement Matthew DeVore
2018-10-05 21:54 ` [PATCH v5 4/7] t/*: fix ordering of expected/observed arguments Matthew DeVore
2018-10-05 21:54 ` [PATCH v5 5/7] tests: don't swallow Git errors upstream of pipes Matthew DeVore
2018-10-05 21:54 ` [PATCH v5 6/7] t9109: " Matthew DeVore
2018-10-05 21:54 ` Matthew DeVore [this message]
2018-10-06 23:53 ` [PATCH v5 0/7] subject: Clean up tests for test_cmp arg ordering and pipe placement Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=6f639eec9ed57ecd17431b215430541da8ff250b.1538775186.git.matvore@google.com \
--to=matvore@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jonathantanmy@google.com \
--cc=jrn@google.com \
--cc=peff@peff.net \
--cc=sunshine@sunshineco.com \
--cc=szeder.dev@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.