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

Re: [PATCH 06/20] refs/files: remove "name exist?" check in lock_ref_oid_basic()

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 14, 2021, 20:53 UTC
Message-ID
<xmqqh7djba6e.fsf@gitster.g>
In-Reply-To
<patch-06.20-3162bf28505-20211013T235900Z-avarab@gmail.com>
Ævar Arnfjörð Bjarmason  <avarab@gmail.com> writes:
Show 21 quoted lines
> diff --git a/refs/files-backend.c b/refs/files-backend.c
> index 0af6ee44552..0dd21b2e205 100644
> --- a/refs/files-backend.c
> +++ b/refs/files-backend.c
> @@ -1013,16 +1013,6 @@ static struct ref_lock *lock_ref_oid_basic(struct files_ref_store *refs,
>  	CALLOC_ARRAY(lock, 1);
>  
>  	files_ref_path(refs, &ref_file, refname);
> -	if (!refs_resolve_ref_unsafe(&refs->base, refname,
> -				     RESOLVE_REF_NO_RECURSE,
> -				     &lock->old_oid, type)) {
> -		if (!refs_verify_refname_available(&refs->base, refname,
> -						   NULL, NULL, err))
> -			strbuf_addf(err, "unable to resolve reference '%s': %s",
> -				    refname, strerror(errno));
> -
> -		goto error_return;
> -	}
>  
>  	/*
>  	 * If the ref did not exist and we are creating it, make sure

This has the side effect of "type" not touched at all by this function, which in turn triggers "type is used uninitialized?" error in files_reflog_expire() that calls this function.

Previous: Ævar Arnfjörð BjarmasonNext: Ævar Arnfjörð Bjarmason
Message 9 of 45 in “refs: stop having the API set "errno"”
  1. 00/20 refs: stop having the API set "errno"Ævar Arnfjörð Bjarmason, Oct 14, 2021
  2. 01/20 branch tests: test for errno propagating on failing readÆvar Arnfjörð Bjarmason, Oct 14, 2021
  3. Eric SunshineOct 14, 2021
  4. 02/20 refs API: add a version of refs_resolve_ref_unsafe() with "errno"Ævar Arnfjörð Bjarmason, Oct 14, 2021
  5. 03/20 refs API: make refs_read_raw_ref() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  6. 04/20 refs API: make parse_loose_ref_contents() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  7. 05/20 refs API: make refs_rename_ref_available() staticÆvar Arnfjörð Bjarmason, Oct 14, 2021
  8. 06/20 refs/files: remove "name exist?" check in lock_ref_oid_basic()Ævar Arnfjörð Bjarmason, Oct 14, 2021
  9. Junio C HamanoOct 14, 2021
  10. 07/20 refs API: remove refs_read_ref_full() wrapperÆvar Arnfjörð Bjarmason, Oct 14, 2021
  11. 08/20 refs API: make resolve_gitlink_ref() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  12. 09/20 refs API: make loose_fill_ref_dir() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  13. 10/20 refs API: make files_copy_or_rename_ref() et al not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  14. 11/20 refs API: ignore errno in worktree.c's add_head_info()Ævar Arnfjörð Bjarmason, Oct 14, 2021
  15. 12/20 refs API: ignore errno in worktree.c's find_shared_symref()Ævar Arnfjörð Bjarmason, Oct 14, 2021
  16. 14/20 refs API: make refs_resolve_refdup() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  17. 13/20 refs tests: ignore ignore errno in test-ref-store helperÆvar Arnfjörð Bjarmason, Oct 14, 2021
  18. 15/20 refs API: make refs_ref_exists() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  19. 16/20 refs API: make resolve_ref_unsafe() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  20. 17/20 refs API: make expand_ref() & repo_dwim_log() not set errnoÆvar Arnfjörð Bjarmason, Oct 14, 2021
  21. 18/20 refs API: don't expose "errno" in run_transaction_hook()Ævar Arnfjörð Bjarmason, Oct 14, 2021
  22. 20/20 refs API: post-migration API renaming [2/2]Ævar Arnfjörð Bjarmason, Oct 14, 2021
  23. 19/20 refs API: post-migration API renaming [1/2]Ævar Arnfjörð Bjarmason, Oct 14, 2021
  24. 00/21 refs: stop having the API set "errno"Ævar Arnfjörð Bjarmason, Oct 16, 2021
  25. 04/21 refs API: make parse_loose_ref_contents() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  26. 06/21 reflog tests: add --updateref testsÆvar Arnfjörð Bjarmason, Oct 16, 2021
  27. 03/21 refs API: make refs_read_raw_ref() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  28. 01/21 branch tests: test for errno propagating on failing readÆvar Arnfjörð Bjarmason, Oct 16, 2021
  29. 08/21 refs API: remove refs_read_ref_full() wrapperÆvar Arnfjörð Bjarmason, Oct 16, 2021
  30. 02/21 refs API: add a version of refs_resolve_ref_unsafe() with "errno"Ævar Arnfjörð Bjarmason, Oct 16, 2021
  31. 05/21 refs API: make refs_rename_ref_available() staticÆvar Arnfjörð Bjarmason, Oct 16, 2021
  32. 07/21 refs/files: remove "name exist?" check in lock_ref_oid_basic()Ævar Arnfjörð Bjarmason, Oct 16, 2021
  33. 09/21 refs API: make resolve_gitlink_ref() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  34. 10/21 refs API: make loose_fill_ref_dir() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  35. 12/21 refs API: ignore errno in worktree.c's add_head_info()Ævar Arnfjörð Bjarmason, Oct 16, 2021
  36. 11/21 refs API: make files_copy_or_rename_ref() et al not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  37. 14/21 refs tests: ignore ignore errno in test-ref-store helperÆvar Arnfjörð Bjarmason, Oct 16, 2021
  38. 17/21 refs API: make resolve_ref_unsafe() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  39. 13/21 refs API: ignore errno in worktree.c's find_shared_symref()Ævar Arnfjörð Bjarmason, Oct 16, 2021
  40. 16/21 refs API: make refs_ref_exists() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  41. 15/21 refs API: make refs_resolve_refdup() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  42. 20/21 refs API: post-migration API renaming [1/2]Ævar Arnfjörð Bjarmason, Oct 16, 2021
  43. 18/21 refs API: make expand_ref() & repo_dwim_log() not set errnoÆvar Arnfjörð Bjarmason, Oct 16, 2021
  44. 19/21 refs API: don't expose "errno" in run_transaction_hook()Ævar Arnfjörð Bjarmason, Oct 16, 2021
  45. 21/21 refs API: post-migration API renaming [2/2]Ævar Arnfjörð Bjarmason, Oct 16, 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.