reftable/stack: allow passing flags to reftable_stack_add()
The `reftable_stack_add()` function is a simple wrapper to lock the stack, add records to it via a callback and then commit the result. One problem with it though is that it doesn't accept any flags for creating the addition. This makes it impossible to automatically reload the stack in case it was modified before we managed to lock the stack. Add a `flags` field to plug this gap and pass it through accordingly. For now this new flag won't be used by us, but it will be used by libgit2. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
6fb1d819b7
commit
178c588500
@@ -1960,7 +1960,7 @@ static int reftable_be_rename_ref(struct ref_store *ref_store,
|
||||
ret = backend_for(&arg.be, refs, newrefname, &newrefname, 1);
|
||||
if (ret)
|
||||
goto done;
|
||||
ret = reftable_stack_add(arg.be->stack, &write_copy_table, &arg);
|
||||
ret = reftable_stack_add(arg.be->stack, &write_copy_table, &arg, 0);
|
||||
|
||||
done:
|
||||
assert(ret != REFTABLE_API_ERROR);
|
||||
@@ -1989,7 +1989,7 @@ static int reftable_be_copy_ref(struct ref_store *ref_store,
|
||||
ret = backend_for(&arg.be, refs, newrefname, &newrefname, 1);
|
||||
if (ret)
|
||||
goto done;
|
||||
ret = reftable_stack_add(arg.be->stack, &write_copy_table, &arg);
|
||||
ret = reftable_stack_add(arg.be->stack, &write_copy_table, &arg, 0);
|
||||
|
||||
done:
|
||||
assert(ret != REFTABLE_API_ERROR);
|
||||
@@ -2360,7 +2360,7 @@ static int reftable_be_create_reflog(struct ref_store *ref_store,
|
||||
goto done;
|
||||
arg.stack = be->stack;
|
||||
|
||||
ret = reftable_stack_add(be->stack, &write_reflog_existence_table, &arg);
|
||||
ret = reftable_stack_add(be->stack, &write_reflog_existence_table, &arg, 0);
|
||||
|
||||
done:
|
||||
return ret;
|
||||
@@ -2431,7 +2431,7 @@ static int reftable_be_delete_reflog(struct ref_store *ref_store,
|
||||
return ret;
|
||||
arg.stack = be->stack;
|
||||
|
||||
ret = reftable_stack_add(be->stack, &write_reflog_delete_table, &arg);
|
||||
ret = reftable_stack_add(be->stack, &write_reflog_delete_table, &arg, 0);
|
||||
|
||||
assert(ret != REFTABLE_API_ERROR);
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user