git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 09/10] t5551: stop writing packed-refs directly

From
Patrick Steinhardt <ps@pks.im>
Date
Nov 29, 2023, 07:25 UTC
Message-ID
<2ab24ea5633be6b4855567d126a184d54c624f62.1701242407.git.ps@pks.im>
In-Reply-To
<cover.1701242407.git.ps@pks.im>

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>
---
 t/t5551-http-fetch-smart.sh | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/t/t5551-http-fetch-smart.sh b/t/t5551-http-fetch-smart.sh
index 8a41adf1e1..e069737b80 100755
--- a/t/t5551-http-fetch-smart.sh
+++ b/t/t5551-http-fetch-smart.sh
@@ -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' '
-- 
2.43.0
Previous: Taylor BlauNext: Taylor Blau
Message 12 of 16 in “t: more compatibility fixes with reftables”
  1. 00/10 t: more compatibility fixes with reftablesPatrick Steinhardt, Nov 29, 2023
  2. 01/10 t0410: mark tests to require the reffiles backendPatrick Steinhardt, Nov 29, 2023
  3. Taylor BlauNov 29, 2023
  4. 02/10 t1400: split up generic reflog tests from the reffile-specific onesPatrick Steinhardt, Nov 29, 2023
  5. 03/10 t1401: stop treating FETCH_HEAD as real referencePatrick Steinhardt, Nov 29, 2023
  6. 04/10 t1410: use test-tool to create empty reflogPatrick Steinhardt, Nov 29, 2023
  7. 05/10 t1417: make `reflog --updateref` tests backend agnosticPatrick Steinhardt, Nov 29, 2023
  8. 06/10 t3310: stop checking for reference existence via `test -f`Patrick Steinhardt, Nov 29, 2023
  9. 07/10 t4013: simplify magic parsing and drop "failure"Patrick Steinhardt, Nov 29, 2023
  10. 08/10 t5401: speed up creation of many branchesPatrick Steinhardt, Nov 29, 2023
  11. Taylor BlauNov 29, 2023
  12. 09/10 t5551: stop writing packed-refs directlyPatrick Steinhardt, Nov 29, 2023
  13. Taylor BlauNov 29, 2023
  14. 10/10 t6301: write invalid object ID via `test-tool ref-store`Patrick Steinhardt, Nov 29, 2023
  15. Taylor BlauNov 29, 2023
  16. Patrick SteinhardtNov 30, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.