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
Junio C Hamano <gitster@pobox.com>
Date
Nov 29, 2021, 23:22 UTC
Message-ID
<xmqqk0gq4keo.fsf@gitster.g>
In-Reply-To
<0a297f0c3e884c2d4cfb24a6d3b9f1973fc83125.1638211786.git.gitgitgadget@gmail.com>
"Han-Wen Nienhuys via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: Han-Wen Nienhuys <hanwen@google.com>
>
> Use this flag with the test-helper in t1430, to avoid direct writes to the ref
> database.

OK, this is similar to 3/6 where invalid object names are allowed. This is about allowing invalid refnames. Makes sense.

Show 22 quoted lines
> Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
> ---
>  refs.c                  |  7 ++---
>  refs.h                  | 10 +++++--
>  t/t1430-bad-ref-name.sh | 59 ++++++++++++++++++++++-------------------
>  3 files changed, 44 insertions(+), 32 deletions(-)
>
> diff --git a/refs.c b/refs.c
> index d7cc0a23a3b..086b1341d2a 100644
> --- a/refs.c
> +++ b/refs.c
> @@ -1078,9 +1078,10 @@ int ref_transaction_update(struct ref_transaction *transaction,
>  {
>  	assert(err);
>  
> -	if ((new_oid && !is_null_oid(new_oid)) ?
> -	    check_refname_format(refname, REFNAME_ALLOW_ONELEVEL) :
> -	    !refname_is_safe(refname)) {
> +	if (!(flags & REF_SKIP_REFNAME_VERIFICATION) &&
> +	    ((new_oid && !is_null_oid(new_oid)) ?
> +		     check_refname_format(refname, REFNAME_ALLOW_ONELEVEL) :
> +			   !refname_is_safe(refname))) {

OK. Initially my eyes went "Huh?", but it was just re-indentation that fooled them.

Show 8 quoted lines
> @@ -617,12 +617,18 @@ struct ref_transaction *ref_transaction_begin(struct strbuf *err);
>   */
>  #define REF_SKIP_OID_VERIFICATION (1 << 10)
>  
> +/*
> + * Skip verifying refname. This is useful for testing data corruption scenarios.
> + */
> +#define REF_SKIP_REFNAME_VERIFICATION (1 << 11)
OK.
Previous: Han-Wen Nienhuys via GitGitGadgetNext: Junio C Hamano
Message 7 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.