Merge branch 'ps/avoid-unnecessary-hook-invocation-with-packed-refs'
Because a deletion of ref would need to remove it from both the loose ref store and the packed ref store, a delete-ref operation that logically removes one ref may end up invoking ref-transaction hook twice, which has been corrected. * ps/avoid-unnecessary-hook-invocation-with-packed-refs: refs: skip hooks when deleting uncovered packed refs refs: do not execute reference-transaction hook on packing refs refs: demonstrate excessive execution of the reference-transaction hook refs: allow skipping the reference-transaction hook refs: allow passing flags when beginning transactions refs: extract packed_refs_delete_refs() to allow control of transaction
This commit is contained in:
8
refs.h
8
refs.h
@ -226,7 +226,7 @@ char *repo_default_branch_name(struct repository *r, int quiet);
|
||||
* struct strbuf err = STRBUF_INIT;
|
||||
* int ret = 0;
|
||||
*
|
||||
* transaction = ref_store_transaction_begin(refs, &err);
|
||||
* transaction = ref_store_transaction_begin(refs, 0, &err);
|
||||
* if (!transaction ||
|
||||
* ref_transaction_update(...) ||
|
||||
* ref_transaction_create(...) ||
|
||||
@ -563,11 +563,17 @@ enum action_on_err {
|
||||
UPDATE_REFS_QUIET_ON_ERR
|
||||
};
|
||||
|
||||
/*
|
||||
* Skip executing the reference-transaction hook.
|
||||
*/
|
||||
#define REF_TRANSACTION_SKIP_HOOK (1 << 0)
|
||||
|
||||
/*
|
||||
* Begin a reference transaction. The reference transaction must
|
||||
* be freed by calling ref_transaction_free().
|
||||
*/
|
||||
struct ref_transaction *ref_store_transaction_begin(struct ref_store *refs,
|
||||
unsigned int flags,
|
||||
struct strbuf *err);
|
||||
struct ref_transaction *ref_transaction_begin(struct strbuf *err);
|
||||
|
||||
|
Reference in New Issue
Block a user