Re: [PATCH 4/4] refs: do not clobber dangling symrefs
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 22, 2025, 15:54 UTC
- Message-ID
- <xmqqwm5qv5xh.fsf@gitster.g>
- In-Reply-To
- <20250922122332.584428-1-toon@iotcl.com>
Toon Claes <toon@iotcl.com> writes:
Show 9 quoted lines
> We use `update FOO_HEAD 000...000 000..000` to delete a symref, if that symref > is dangling (otherwise the old oid would have resolved to something). I've > attached a patch that would allow this (on top of your patches). Do you think it > makes sense to allow this scenario? > ... > + test_when_finished "git update-ref -d refs/heads/dangling" && > + git symbolic-ref refs/heads/dangling refs/heads/does-not-exist && > + echo "update refs/heads/dangling $Z $Z" >stdin && > + git update-ref --no-deref --stdin <stdin &&
"git update-ref --help" seems to show that the "--stdin" mode has a separate command that is designed for exactly the purpose of removing a symbolic ref, though. If you are changing the semantics of "update" to make it safer while dealing with a dangling symbolic ref, do you also need to touch the code path that handles "symref-delete" command?
Show 7 quoted lines
> + test_must_fail git rev-parse --verify refs/heads/dangling && > + test_must_fail git rev-parse --verify refs/heads/does-not-exist > +' > + > test_done > -- > 2.51.0