summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--refs/files-backend.c9
-rwxr-xr-xt/t1416-ref-transaction-hooks.sh7
2 files changed, 7 insertions, 9 deletions
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 565929210a..844918cbd8 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -1261,7 +1261,8 @@ static int files_delete_refs(struct ref_store *ref_store, const char *msg,
if (packed_refs_lock(refs->packed_ref_store, 0, &err))
goto error;
- transaction = ref_store_transaction_begin(refs->packed_ref_store, 0, &err);
+ transaction = ref_store_transaction_begin(refs->packed_ref_store,
+ REF_TRANSACTION_SKIP_HOOK, &err);
if (!transaction)
goto error;
@@ -2776,7 +2777,8 @@ static int files_transaction_prepare(struct ref_store *ref_store,
*/
if (!packed_transaction) {
packed_transaction = ref_store_transaction_begin(
- refs->packed_ref_store, 0, err);
+ refs->packed_ref_store,
+ REF_TRANSACTION_SKIP_HOOK, err);
if (!packed_transaction) {
ret = TRANSACTION_GENERIC_ERROR;
goto cleanup;
@@ -3047,7 +3049,8 @@ static int files_initial_transaction_commit(struct ref_store *ref_store,
&affected_refnames))
BUG("initial ref transaction called with existing refs");
- packed_transaction = ref_store_transaction_begin(refs->packed_ref_store, 0, err);
+ packed_transaction = ref_store_transaction_begin(refs->packed_ref_store,
+ REF_TRANSACTION_SKIP_HOOK, err);
if (!packed_transaction) {
ret = TRANSACTION_GENERIC_ERROR;
goto cleanup;
diff --git a/t/t1416-ref-transaction-hooks.sh b/t/t1416-ref-transaction-hooks.sh
index f9d3d5213f..4e1e84a91f 100755
--- a/t/t1416-ref-transaction-hooks.sh
+++ b/t/t1416-ref-transaction-hooks.sh
@@ -175,16 +175,11 @@ test_expect_success 'deleting packed ref calls hook once' '
git update-ref -d refs/heads/to-be-deleted $POST_OID &&
# We only expect a single hook invocation, which is the logical
- # deletion. But currently, we see two interleaving transactions, once
- # for deleting the loose refs and once for deleting the packed ref.
+ # deletion.
cat >expect <<-EOF &&
prepared
- $ZERO_OID $ZERO_OID refs/heads/to-be-deleted
- prepared
$POST_OID $ZERO_OID refs/heads/to-be-deleted
committed
- $ZERO_OID $ZERO_OID refs/heads/to-be-deleted
- committed
$POST_OID $ZERO_OID refs/heads/to-be-deleted
EOF