]> git.ipfire.org Git - thirdparty/git.git/commit
refs: skip to next ref when current ref is rejected
authorKarthik Nayak <karthik.188@gmail.com>
Sun, 25 Jan 2026 22:52:36 +0000 (23:52 +0100)
committerJunio C Hamano <gitster@pobox.com>
Mon, 26 Jan 2026 06:27:33 +0000 (22:27 -0800)
commitb52a28b03ec99f2cfe4ef921b0d47250c665b0c6
tree80c65e8096138a107f3a00fd5b3b6faab5afd7a6
parent8745eae506f700657882b9e32b2aa00f234a6fb6
refs: skip to next ref when current ref is rejected

In `refs_verify_refnames_available()` we have two nested loops: the
outer loop iterates over all references to check, while the inner loop
checks for filesystem conflicts for a given ref by breaking down its
path.

With batched updates, when we detect a filesystem conflict, we mark the
update as rejected and execute 'continue'. However, this only skips to
the next iteration of the inner loop, not the outer loop as intended.
This causes the same reference to be repeatedly rejected. Fix this by
using a goto statement to skip to the next reference in the outer loop.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
refs.c
refs/files-backend.c
refs/packed-backend.c
refs/refs-internal.h
refs/reftable-backend.c