Re: [PATCH v7 4/6] refs: add TRANSACTION_CREATE_EXISTS error
From: Phillip Wood <hidden>
Date: 2024-10-14 08:48:16
Hi Bence On 13/10/2024 21:52, Bence Ferdinandy wrote:
On Sun Oct 13, 2024 at 16:03, Phillip Wood [off-list ref] wrote:
quoted
quoted
diff --git a/refs/reftable-backend.c b/refs/reftable-backend.c index 3c96fbf66f..ebf8e57fbc 100644 --- a/refs/reftable-backend.c +++ b/refs/reftable-backend.c@@ -1206,10 +1206,13 @@ static int reftable_be_transaction_prepare(struct ref_store *ref_store, goto done; } } else if ((u->flags & REF_HAVE_OLD) && !oideq(¤t_oid, &u->old_oid)) { - if (is_null_oid(&u->old_oid)) + ret = TRANSACTION_NAME_CONFLICT; + if (is_null_oid(&u->old_oid)) { strbuf_addf(err, _("cannot lock ref '%s': " "reference already exists"), ref_update_original_update_refname(u)); + ret = TRANSACTION_CREATE_EXISTS; + } else if (is_null_oid(¤t_oid)) strbuf_addf(err, _("cannot lock ref '%s': " "reference is missing but expected %s"),@@ -1221,7 +1224,6 @@ static int reftable_be_transaction_prepare(struct ref_store *ref_store, ref_update_original_update_refname(u), oid_to_hex(¤t_oid), oid_to_hex(&u->old_oid)); - ret = -1; goto done; }This originally returned -1, and it still returns that if it doesn't return -2, I just used the named variable instead of the integer itself. It might still be that this should be -3 GENERIC_ERROR, but if that is the case I think fixing that should be a different patch? I didn't check if changing that -1 to something else breaks anything or not.
Oh sorry I was confused and thought TRANSACTION_GENERIC_ERROR was -1. Best Wishes Phillip
Best, Bence