Show 45 quoted lines
> 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