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

Re: [PATCH 2/2] refs: set the repo in debug_ref_store.base

From
Junio C Hamano <gitster@pobox.com>
Date
Dec 22, 2021, 05:58 UTC
Message-ID
<xmqqtuf1kwob.fsf@gitster.g>
In-Reply-To
<75e5392032dbdbdedf8a2b76a7098e4dc1133d82.1640090038.git.gitgitgadget@gmail.com>
"Han-Wen Nienhuys via GitGitGadget" <gitgitgadget@gmail.com> writes:
> From: Han-Wen Nienhuys <hanwen@google.com>
>
> This is for consistency with the files backend.
Hmmmm.  Could you explain what it exactly means?

I can see that files_ref_store structure has the .repo member and files_ref_store_create() uses it to remember which repository the ref store is for, but that is an implementation detail that is not exposed outside the files backend, isn't it?

To put it differently, what is broken with the current code that leaves the .repo member in refs->base uninitialized? We are presumably helping the caller that wants to know the repository the ref store belongs to via this pointer with this change---what is that caller?

Show 17 quoted lines
> Signed-off-by: Han-Wen Nienhuys <hanwen@google.com>
> ---
>  refs/debug.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/refs/debug.c b/refs/debug.c
> index cf6ad36fbb0..136cfd7c700 100644
> --- a/refs/debug.c
> +++ b/refs/debug.c
> @@ -26,6 +26,7 @@ struct ref_store *maybe_debug_wrap_ref_store(const char *gitdir, struct ref_stor
>  	be_copy->name = store->be->name;
>  	trace_printf_key(&trace_refs, "ref_store for %s\n", gitdir);
>  	res->refs = store;
> +	res->base.repo = store->repo;
>  	base_ref_store_init((struct ref_store *)res, be_copy);
>  	return (struct ref_store *)res;
>  }
Thanks.
Previous: Han-Wen Nienhuys via GitGitGadgetNext: Han-Wen Nienhuys
Message 4 of 10 in “tweaks to refs/debug.c”
  1. 0/2 tweaks to refs/debug.cHan-Wen Nienhuys via GitGitGadget, Dec 21, 2021
  2. 1/2 refs: print error message in debug outputHan-Wen Nienhuys via GitGitGadget, Dec 21, 2021
  3. 2/2 refs: set the repo in debug_ref_store.baseHan-Wen Nienhuys via GitGitGadget, Dec 21, 2021
  4. Junio C HamanoDec 22, 2021
  5. Han-Wen NienhuysDec 22, 2021
  6. 0/3 tweaks to refs/debug.cHan-Wen Nienhuys via GitGitGadget, Dec 22, 2021
  7. 1/3 refs: pass gitdir to packed_ref_store_createHan-Wen Nienhuys via GitGitGadget, Dec 22, 2021
  8. 2/3 refs: print error message in debug outputHan-Wen Nienhuys via GitGitGadget, Dec 22, 2021
  9. 3/3 refs: centralize initialization of the base ref_store.Han-Wen Nienhuys via GitGitGadget, Dec 22, 2021
  10. Junio C HamanoDec 22, 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.