Files
git/builtin
Karthik Nayak 5c697f0b7d receive-pack: handle reference deletions separately
In 9d2962a7c4 (receive-pack: use batched reference updates, 2025-05-19)
we updated the 'git-receive-pack(1)' command to use batched reference
updates. One edge case which was missed during this implementation was
when a user pushes multiple branches such as:

  delete refs/heads/branch/conflict
  create refs/heads/branch

Before using batched updates, the references would be applied
sequentially and hence no conflicts would arise. With batched updates,
while the first update applies, the second fails due to D/F conflict. A
similar issue was present in 'git-fetch(1)' and was fixed by separating
out reference pruning into a separate transaction in the commit 'fetch:
use batched reference updates'. Apply a similar mechanism for
'git-receive-pack(1)' and separate out reference deletions into its own
batch.

This means 'git-receive-pack(1)' will now use up to two transactions,
whereas before using batched updates it would use _at least_ two
transactions. So using batched updates is still the better option.

Add a test to validate this behavior.

Signed-off-by: Karthik Nayak <karthik.188@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-06-25 08:20:27 -07:00
..
2024-12-13 07:33:36 -08:00
2025-05-12 14:22:49 -07:00
2025-01-28 13:02:22 -08:00
2025-05-19 11:06:31 -07:00
2025-05-12 14:22:49 -07:00
2024-12-18 10:44:30 -08:00
2025-05-12 14:22:49 -07:00
2024-12-18 10:44:31 -08:00
2025-05-08 12:36:32 -07:00
2025-02-04 09:51:41 -08:00
2025-03-29 01:04:40 -07:00
2025-04-24 17:25:34 -07:00
2024-12-18 10:44:30 -08:00
2025-01-28 13:02:22 -08:00