git/refs
Ariel Keselman d8e4585822 refs/files: avoid packed-refs lock for root ref deletion
Deleting a root ref queues a packed-ref transaction in the files
backend, even though root refs cannot be packed. For example, holding
.git/packed-refs.lock makes "git update-ref --no-deref -d AUTO_MERGE"
fail, whether or not AUTO_MERGE exists.

This also affects post-commit cleanup, which deletes AUTO_MERGE after
updating HEAD. In a linked worktree with read-only shared metadata,
commit succeeds but cleanup reports a packed-refs.lock error. Deleting
CHERRY_PICK_HEAD and REVERT_HEAD is affected as well.

Skip the packed transaction for root-ref deletions. Keep loose-ref
locking and packed-ref deletion for other refs unchanged.

Signed-off-by: Ariel Keselman <skariel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2026-09-14 07:37:00 -07:00
..
debug.c Merge branch 'gf/maintenance-is-needed-fix' 2025-12-30 12:58:20 +09:00
files-backend.c refs/files: avoid packed-refs lock for root ref deletion 2026-09-14 07:37:00 -07:00
iterator.c refs: rename `each_ref_fn` 2026-02-23 13:21:18 -08:00
packed-backend.c refs: use peeled tag values in reference backends 2026-05-05 16:34:08 +09:00
packed-backend.h refs: introduce `ref_store_init_options` 2026-05-05 16:34:07 +09:00
ref-cache.c
…
ref-cache.h
…
refs-internal.h Merge branch 'kn/refs-generic-helpers' 2026-05-21 12:06:47 +09:00
reftable-backend.c Merge branch 'kn/refs-generic-helpers' 2026-05-21 12:06:47 +09:00