summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Patrick Steinhardt <ps@pks.im>2022-03-03 08:20:05 +0100
committerLibravatar Junio C Hamano <gitster@pobox.com>2022-03-03 14:41:27 -0800
commitde004e848a9542885d6695d2a0450e1be2eb54a1 (patch)
tree91ead0c803aee971b098c624d92c8f11f385486f
parentfetch: make `--atomic` flag cover pruning of refs (diff)
downloadtgif-de004e848a9542885d6695d2a0450e1be2eb54a1.tar.xz
t5503: simplify setup of test which exercises failure of backfill
In the testcase to exercise backfilling of tags for fetches we evoke a failure of the backfilling mechanism by creating a reference that later on causes a D/F conflict. Because the assumption was that git-fetch(1) would notice the D/F conflict early on this conflicting reference was created via the reference-transaction hook just when we were about to write the backfilled tag. As it turns out though this is not the case, and the fetch fails in the same way when we create the conflicting ref up front. Simplify the test setup creating the reference up front, which allows us to get rid of the hook script. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xt/t5503-tagfollow.sh20
1 files changed, 5 insertions, 15 deletions
diff --git a/t/t5503-tagfollow.sh b/t/t5503-tagfollow.sh
index e72fdc2534..a3c01014b7 100755
--- a/t/t5503-tagfollow.sh
+++ b/t/t5503-tagfollow.sh
@@ -212,21 +212,11 @@ test_expect_success 'atomic fetch with backfill should use single transaction' '
test_expect_success 'backfill failure causes command to fail' '
git init clone5 &&
- write_script clone5/.git/hooks/reference-transaction <<-EOF &&
- while read oldrev newrev reference
- do
- if test "\$reference" = refs/tags/tag1
- then
- # Create a nested tag below the actual tag we
- # wanted to write, which causes a D/F conflict
- # later when we want to commit refs/tags/tag1.
- # We cannot just `exit 1` here given that this
- # would cause us to die immediately.
- git update-ref refs/tags/tag1/nested $B
- exit \$!
- fi
- done
- EOF
+ # Create a tag that is nested below the tag we are about to fetch via
+ # the backfill mechanism. This causes a D/F conflict when backfilling
+ # and should thus cause the command to fail.
+ empty_blob=$(git -C clone5 hash-object -w --stdin </dev/null) &&
+ git -C clone5 update-ref refs/tags/tag1/nested $empty_blob &&
test_must_fail git -C clone5 fetch .. $B:refs/heads/something &&
test $B = $(git -C clone5 rev-parse --verify refs/heads/something) &&