refs: add a transaction_commit() method
Signed-off-by: Ronnie Sahlberg <sahlberg@google.com> Signed-off-by: David Turner <dturner@twopensource.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
49c0df6a68
commit
127b42a186
9
refs.c
9
refs.c
@ -1377,3 +1377,12 @@ void assert_main_repository(struct ref_store *refs, const char *caller)
|
||||
if (*refs->submodule)
|
||||
die("BUG: %s called for a submodule", caller);
|
||||
}
|
||||
|
||||
/* backend functions */
|
||||
int ref_transaction_commit(struct ref_transaction *transaction,
|
||||
struct strbuf *err)
|
||||
{
|
||||
struct ref_store *refs = get_ref_store(NULL);
|
||||
|
||||
return refs->be->transaction_commit(refs, transaction, err);
|
||||
}
|
||||
|
@ -3700,11 +3700,12 @@ static int lock_ref_for_update(struct ref_update *update,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ref_transaction_commit(struct ref_transaction *transaction,
|
||||
struct strbuf *err)
|
||||
static int files_transaction_commit(struct ref_store *ref_store,
|
||||
struct ref_transaction *transaction,
|
||||
struct strbuf *err)
|
||||
{
|
||||
struct files_ref_store *refs =
|
||||
get_files_ref_store(NULL, "ref_transaction_commit");
|
||||
files_downcast(ref_store, 0, "ref_transaction_commit");
|
||||
int ret = 0, i;
|
||||
struct string_list refs_to_delete = STRING_LIST_INIT_NODUP;
|
||||
struct string_list_item *ref_to_delete;
|
||||
@ -4093,5 +4094,6 @@ int reflog_expire(const char *refname, const unsigned char *sha1,
|
||||
struct ref_storage_be refs_be_files = {
|
||||
NULL,
|
||||
"files",
|
||||
files_ref_store_create
|
||||
files_ref_store_create,
|
||||
files_transaction_commit
|
||||
};
|
||||
|
@ -535,10 +535,15 @@ int read_raw_ref(const char *refname, unsigned char *sha1,
|
||||
*/
|
||||
typedef struct ref_store *ref_store_init_fn(const char *submodule);
|
||||
|
||||
typedef int ref_transaction_commit_fn(struct ref_store *refs,
|
||||
struct ref_transaction *transaction,
|
||||
struct strbuf *err);
|
||||
|
||||
struct ref_storage_be {
|
||||
struct ref_storage_be *next;
|
||||
const char *name;
|
||||
ref_store_init_fn *init;
|
||||
ref_transaction_commit_fn *transaction_commit;
|
||||
};
|
||||
|
||||
extern struct ref_storage_be refs_be_files;
|
||||
|
Loading…
Reference in New Issue
Block a user