[PATCH v6 0/2] show-index: fix uninitialized hash function
- From
Abhijeet Sonar <abhijeet.nkt@gmail.com>
- Date
- Nov 9, 2024, 09:27 UTC
- Message-ID
- <20241109092739.14276-1-abhijeet.nkt@gmail.com>
- In-Reply-To
- <xmqq4j4mv5o6.fsf@gitster.g>
> Nicely described.
Thanks!
> "git help cli"; dashed options first and then other arguments.
Applied.
> Hmph, is the above a roundabout way to say > git -C explicit-hash-$hash rev-parse one >in &&
Applied.
> or am I missing some subtlety?
No, I don't think you are. However, I would like to point out that the code which I used as the inspiration also does thing the same way:
test_expect_success 'pack-object <stdin parsing: [|--revs] with --stdin' ' cat >in <<-EOF && $(git -C pack-object-stdin rev-parse one) $(git -C pack-object-stdin rev-parse two) EOF
Show 13 quoted lines
> When this test fails (e.g., the number of lines in the show-index > output is not 1), explicit-hash-$hash is not removed, because &&- > chain short-circuits. > > Perhaps join thw two into one and use test_when_finished, like this? > > test_expect_success 'show-index with explicit --object-format=$hash outside repo' ' > test_when_finished "rm -fr explicit-hash-$hash" && > git init --object-format=$hash explicit-hash-$hash && > ... > nongit git show-index --object-format=$hash <"$idx" >actual && > test_line_count 1 actual > '
That makes sense, applied.
Abhijeet Sonar (2): show-index: fix uninitialized hash function t5300: add test for 'show-index --object-format'
builtin/show-index.c | 9 +++++++++ t/t5300-pack-object.sh | 18 ++++++++++++++++++ 2 files changed, 27 insertions(+)
Range-diff against v5:
1: 05ee1e2ea5 = 1: 05ee1e2ea5 show-index: fix uninitialized hash function
2: c8a28aae55 ! 2: 778f3ca18e t5300: add test for 'show-index --object-format'
@@ t/t5300-pack-object.sh: test_expect_success SHA1 'show-index works OK outside a
+for hash in sha1 sha256
+do
-+ test_expect_success 'setup: show-index works OK outside a repository with hash algo passed in via --object-format' '
-+ git init explicit-hash-$hash --object-format=$hash &&
-+ test_commit -C explicit-hash-$hash one &&
-+
-+ cat >in <<-EOF &&
-+ $(git -C explicit-hash-$hash rev-parse one)
-+ EOF
-+
-+ git -C explicit-hash-$hash pack-objects explicit-hash-$hash <in
-+ '
-+
+ test_expect_success 'show-index works OK outside a repository with hash algo passed in via --object-format' '
++ test_when_finished "rm -rf explicit-hash-$hash" &&
++ git init --object-format=$hash explicit-hash-$hash &&
++ test_commit -C explicit-hash-$hash one &&
++ git -C explicit-hash-$hash rev-parse one >in &&
++ git -C explicit-hash-$hash pack-objects explicit-hash-$hash <in &&
+ idx=$(echo explicit-hash-$hash/explicit-hash-$hash*.idx) &&
+ nongit git show-index --object-format=$hash <"$idx" >actual &&
-+ test_line_count = 1 actual &&
-+
-+ rm -rf explicit-hash-$hash
++ test_line_count = 1 actual
+ '
+done
+-- 2.47.0.107.g34b6ce9b30