From: Karthik Nayak Date: Tue, 17 Feb 2026 09:16:21 GMT Subject: Re: [PATCH v6 3/6] refs: receive and use the reference storage payload Message-ID: In-Reply-To: Patrick Steinhardt writes: > On Sat, Feb 14, 2026 at 11:34:16PM +0100, Karthik Nayak wrote: >> diff --git a/refs.c b/refs.c >> index 77b93d655b..11d028232b 100644 >> --- a/refs.c >> +++ b/refs.c >> @@ -3425,3 +3426,40 @@ const char *ref_transaction_error_msg(enum ref_transaction_error err) >> return "unknown failure"; >> } >> } >> + >> +void refs_compute_filesystem_location(const char *gitdir, const char *payload, >> + bool *is_worktree, struct strbuf *refdir, >> + struct strbuf *ref_common_dir) >> +{ >> + struct strbuf sb = STRBUF_INIT; >> + >> + *is_worktree = get_common_dir_noenv(ref_common_dir, gitdir); >> + >> + if (!payload) { >> + /* >> + * We can use the 'gitdir' as the 'refdir' without appending the >> + * worktree path, as the 'gitdir' here is already the worktree >> + * path and is different from 'commondir' denoted by 'ref_common_dir'. >> + */ >> + strbuf_addstr(refdir, gitdir); >> + return; >> + } >> + >> + if (!is_absolute_path(payload)) { >> + strbuf_addf(&sb, "%s/%s", ref_common_dir->buf, payload); >> + strbuf_realpath(ref_common_dir, sb.buf, 1); >> + } else { >> + strbuf_realpath(ref_common_dir, payload, 1); >> + } >> + >> + strbuf_addbuf(refdir, ref_common_dir); >> + >> + if (*is_worktree) { >> + const char *wt_id = strrchr(gitdir, '/'); >> + if (!wt_id) >> + BUG("worktree path does not contain slash "); > > There's a trailing space in the error message here. > > Patrick Oops, will fix.