refs: don't invoke reference-transaction hook for reflogs
The reference-transaction hook is invoked whenever there is a reference update being performed. For each state of the transaction, we iterate over the updates present and pass this information to the hook. The `ref_update` structure is used to hold these updates within a `transaction`. We use the same structure for holding reflog updates too. Which means that the reference transaction hook is also obtaining information about a reflog update. This is a bug, since: - The hook is designed to work with reference updates and reflogs updates are different. - The hook doesn't have the required information to distinguish reference updates from reflog updates. This is particularly evident when the default branch (pointed by HEAD) is updated, we see that the hook also receives information about HEAD being changed. In reality, we only add a reflog update for HEAD, while HEAD's values remains the same. Signed-off-by: Karthik Nayak <karthik.188@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
parent
777489f9e0
commit
b886db48c6
3
refs.c
3
refs.c
|
@ -2185,6 +2185,9 @@ static int run_transaction_hook(struct ref_transaction *transaction,
|
|||
for (i = 0; i < transaction->nr; i++) {
|
||||
struct ref_update *update = transaction->updates[i];
|
||||
|
||||
if (update->flags & REF_LOG_ONLY)
|
||||
continue;
|
||||
|
||||
strbuf_reset(&buf);
|
||||
|
||||
if (!(update->flags & REF_HAVE_OLD))
|
||||
|
|
|
@ -53,7 +53,6 @@ test_expect_success 'hook gets all queued updates in prepared state' '
|
|||
fi
|
||||
EOF
|
||||
cat >expect <<-EOF &&
|
||||
$ZERO_OID $POST_OID HEAD
|
||||
$ZERO_OID $POST_OID refs/heads/main
|
||||
EOF
|
||||
git update-ref HEAD POST <<-EOF &&
|
||||
|
@ -76,7 +75,6 @@ test_expect_success 'hook gets all queued updates in committed state' '
|
|||
fi
|
||||
EOF
|
||||
cat >expect <<-EOF &&
|
||||
$ZERO_OID $POST_OID HEAD
|
||||
$ZERO_OID $POST_OID refs/heads/main
|
||||
EOF
|
||||
git update-ref HEAD POST &&
|
||||
|
|
Loading…
Reference in New Issue