]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t5551: stop writing packed-refs directly
authorPatrick Steinhardt <ps@pks.im>
Wed, 29 Nov 2023 07:25:14 +0000 (08:25 +0100)
committerJunio C Hamano <gitster@pobox.com>
Sun, 3 Dec 2023 02:50:24 +0000 (11:50 +0900)
We have multiple tests in t5551 that write thousands of tags. To do so
efficiently we generate the tags by writing the `packed-refs` file
directly, which of course assumes that the reference database is backed
by the files backend.

Refactor the code to instead use a single `git update-ref --stdin`
command to write the tags. While the on-disk end result is not the same
as we now have a bunch of loose refs instead of a single packed-refs
file, the distinction shouldn't really matter for any of the tests that
use this helper.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5551-http-fetch-smart.sh

index 8a41adf1e1f078712a423b0f41541afb1b5f045d..e069737b80b7bd906afa1963f7b818ffac8ed2ca 100755 (executable)
@@ -359,7 +359,9 @@ create_tags () {
 
        # now assign tags to all the dangling commits we created above
        tag=$(perl -e "print \"bla\" x 30") &&
-       sed -e "s|^:\([^ ]*\) \(.*\)$|\2 refs/tags/$tag-\1|" <marks >>packed-refs
+       sed -e "s|^:\([^ ]*\) \(.*\)$|create refs/tags/$tag-\1 \2|" <marks >input &&
+       git update-ref --stdin <input &&
+       rm input
 }
 
 test_expect_success 'create 2,000 tags in the repo' '