git/refs
Karthik Nayak 9b62a67bdb refs/files: use correct error type when lock exists
When fetching references into a repository, if a lock for a particular
reference exists, then `lock_raw_ref()` throws:

    - REF_TRANSACTION_ERROR_CASE_CONFLICT: when there is a conflict
    because the transaction contains conflicting references while being
    on a case-insensitive filesystem.

    - REF_TRANSACTION_ERROR_GENERIC: for all other errors.

The latter causes the entire set of batched updates to fail, even in
case sensitive filessystems.

Instead, return a 'REF_TRANSACTION_ERROR_CREATE_EXISTS' error. This
allows batched updates to reject the individual update which conflicts
with the existing file, while updating the rest of the references.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-09-17 09:19:08 -07:00
..
debug.c refs: selectively set prefix in the seek functions 2025-07-15 11:54:20 -07:00
files-backend.c refs/files: use correct error type when lock exists 2025-09-17 09:19:08 -07:00
iterator.c refs: selectively set prefix in the seek functions 2025-07-15 11:54:20 -07:00
packed-backend.c Merge branch 'ps/config-wo-the-repository' 2025-08-04 08:10:33 -07:00
packed-backend.h refs/files: use heuristic to decide whether to repack with `--auto` 2024-09-04 08:03:24 -07:00
ref-cache.c ref-cache: use 'size_t' instead of int for length 2025-07-28 14:16:36 -07:00
ref-cache.h ref-cache: remove unused function 'find_ref_entry()' 2025-07-15 11:54:19 -07:00
refs-internal.h refs: selectively set prefix in the seek functions 2025-07-15 11:54:20 -07:00
reftable-backend.c Merge branch 'ps/config-wo-the-repository' 2025-08-04 08:10:33 -07:00