Subject: Re: with git update-ref?

From: Junio C Hamano <[email-masked]>
Date: Fri, 11 Oct 2024 14:28:36 -0700

"Bence Ferdinandy" <[email-masked]> writes:

> On Fri Oct 11, 2024 at 22:56, Kristoffer Haugsbakk <[email-masked]> wrote:
>> `ref: refs/remotes/origin/test`? (space after colon)
>
> I tried a couple of variations and no:
>
> ❯ git update-ref --no-deref refs/remotes/origin/HEAD 'ref: refs/remotes/origin/test'
> fatal: ref: refs/remotes/origin/test: not a valid SHA1
> ❯ git update-ref refs/remotes/origin/HEAD 'ref: refs/remotes/origin/test'
> fatal: ref: refs/remotes/origin/test: not a valid SHA1
> ❯ git update-ref --no-deref refs/remotes/origin/HEAD 'ref:refs/remotes/origin/test'
> fatal: ref:refs/remotes/origin/test: not a valid SHA1
> ❯ git update-ref  refs/remotes/origin/HEAD 'ref:refs/remotes/origin/test'
> fatal: ref:refs/remotes/origin/test: not a valid SHA1
>
> I guess the intended way of doing this is via git symbolic-ref anyway, but I'm
> curious if this should work somehow or I'm misinterpreting the meaning of that
> sentence.

I do not think update-ref is a tool to modify a symbolic-ref.
Moreover, the mention of "ref:" is meant to be for those who are
overly curious for their own good and go peek into their .git/
directory; script writers should not have to know such an
implementation detail.

: ask what the current state is.
$ git symbolic-ref refs/remotes/origin/HEAD
fatal: ref refs/remotes/origin/HEAD is not a symbolic ref

: set it
$ git symbolic-ref refs/remotes/origin/HEAD refs/remotes/origin/main

: inspect the result
$ git symbolic-ref refs/remotes/origin/HEAD
refs/remotes/origin/master

Thanks.