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

Re: [PATCH v2 4/6] refs: add REF_SKIP_REFNAME_VERIFICATION flag

From
Jeff King <peff@peff.net>
Date
Dec 1, 2021, 19:26 UTC
Message-ID
<YafMS6qI+6t6SOtg@coredump.intra.peff.net>
In-Reply-To
<xmqqh7bs177v.fsf@gitster.g>
On Wed, Dec 01, 2021 at 11:00:04AM -0800, Junio C Hamano wrote:
Show 5 quoted lines
> > The test helper takes the flag as an argument, in decimal. If you look
> > for 2048, you should find it.
> 
> Awful---when the symbolic constants change in the code, the test
> will silently break?
Agreed, this is quite nasty.
Show 5 quoted lines
> It has been this way since 80f2a609 (t/helper: add test-ref-store to
> test ref-store functions, 2017-03-26), so it is nothing new, but at
> some point, we should do a better job.  Even if it is used only as a
> tool for testing, we shouldn't have to force developers to write in
> assembly ;-)

Sort of. The code to pass the flags was added then, but nobody was using it until now.

At least for ref updates. Symref creation allowed "1" for force, but that is a true boolean. It looks like some pack-refs calls pass "3" for PACK_REFS_PRUNE|PACK_REFS_ALL.

So it may be considered a "new" issue in that sense.
> Perhaps when the dust settles after this series graduates to be a
> part of released version.  It may be a good bite-sized microproject
> material for aspiring new developers.

It is annoying to have to plumb through the names of the flags, but in practice I don't think we need all (or even most) of them. And it's equally annoying not to be able to grep for the flags. I already had a hard enough time just grepping for the callers, and resorted to:

diff --git a/t/helper/test-ref-store.c b/t/helper/test-ref-store.c
index 3986665037..1b7a124a86 100644
--- a/t/helper/test-ref-store.c
+++ b/t/helper/test-ref-store.c
@@ -271,6 +271,8 @@ int cmd__ref_store(int argc, const char **argv)
 	const char *func;
 	struct command *cmd;
 
+	trace_argv_printf(argv, "trace: test-tool:");
+
 	setup_git_directory();
 
 	argv = get_store(argv + 1, &refs);

to find them.

-Peff
Previous: Junio C HamanoNext: Han-Wen Nienhuys
Message 11 of 42 in “Allow writing invalid OIDs into refs for testing purposes”
  1. 0/2 Allow writing invalid OIDs into refs for testing purposesHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  2. 1/2 refs: update comment.Han-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  3. 2/2 refs: allow skipping OID verificationHan-Wen Nienhuys via GitGitGadget, Nov 25, 2021
  4. Junio C HamanoNov 26, 2021
  5. 0/6 Allow writing invalid OIDs into refs for testing purposesHan-Wen Nienhuys via GitGitGadget, Nov 29, 2021
  6. 4/6 refs: add REF_SKIP_REFNAME_VERIFICATION flagHan-Wen Nienhuys via GitGitGadget, Nov 29, 2021
  7. Junio C HamanoNov 29, 2021
  8. Junio C HamanoNov 29, 2021
  9. Han-Wen NienhuysNov 30, 2021
  10. Junio C HamanoDec 1, 2021
  11. Jeff KingDec 1, 2021
  12. Han-Wen NienhuysDec 2, 2021
  13. Junio C HamanoDec 2, 2021
  14. 6/6 t1430: create valid symrefs using test-helperHan-Wen Nienhuys via GitGitGadget, Nov 29, 2021
  15. 5/6 t1430: remove refs using test-toolHan-Wen Nienhuys via GitGitGadget, Nov 29, 2021
  16. 1/6 test-ref-store: plug memory leak in cmd_delete_refsHan-Wen Nienhuys via GitGitGadget, Nov 29, 2021
  17. Junio C HamanoNov 29, 2021
  18. 3/6 refs: allow skipping OID verificationHan-Wen Nienhuys via GitGitGadget, Nov 29, 2021
  19. Junio C HamanoNov 29, 2021
  20. 2/6 refs: update comment.Han-Wen Nienhuys via GitGitGadget, Nov 29, 2021
  21. Junio C HamanoNov 29, 2021
  22. Junio C HamanoNov 29, 2021
  23. 0/8 Allow writing invalid OIDs into refs for testing purposesHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  24. 1/8 test-ref-store: remove force-create argument for create-reflogHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  25. 2/8 test-ref-store: parse symbolic flag constantsHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  26. Jeff KingDec 3, 2021
  27. 3/8 test-ref-store: plug memory leak in cmd_delete_refsHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  28. 4/8 refs: update comment.Han-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  29. 5/8 refs: introduce REF_SKIP_OID_VERIFICATION flagHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  30. 6/8 refs: introduce REF_SKIP_REFNAME_VERIFICATION flagHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  31. 7/8 t1430: remove refs using test-toolHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  32. 8/8 t1430: create valid symrefs using test-helperHan-Wen Nienhuys via GitGitGadget, Dec 2, 2021
  33. 0/8 Allow writing invalid OIDs into refs for testing purposesHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  34. 1/8 test-ref-store: remove force-create argument for create-reflogHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  35. 2/8 test-ref-store: parse symbolic flag constantsHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  36. 3/8 test-ref-store: plug memory leak in cmd_delete_refsHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  37. 4/8 refs: update comment.Han-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  38. 5/8 refs: introduce REF_SKIP_OID_VERIFICATION flagHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  39. 6/8 refs: introduce REF_SKIP_REFNAME_VERIFICATION flagHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  40. 7/8 t1430: remove refs using test-toolHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  41. 8/8 t1430: create valid symrefs using test-helperHan-Wen Nienhuys via GitGitGadget, Dec 7, 2021
  42. Junio C HamanoDec 7, 2021

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.