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
..
2025-04-20 14:17:20 -07:00
2025-04-17 08:15:15 -07:00
2024-10-25 14:02:36 -04:00
2024-09-13 14:32:24 -07:00
2024-10-11 09:37:18 -07:00
2025-04-24 17:25:34 -07:00
2024-12-06 20:20:02 +09:00
2025-04-29 14:21:28 -07:00
2025-01-29 14:05:09 -08:00
2025-04-15 08:24:35 -07:00
2024-12-13 07:33:36 -08:00
2025-04-29 10:08:13 -07:00
2024-09-13 14:32:24 -07:00
2024-09-13 14:32:24 -07:00
2025-02-21 18:27:16 -08:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-03-07 16:52:02 -08:00
2025-04-24 17:25:33 -07:00
2024-12-06 20:20:02 +09:00
2025-05-12 14:22:49 -07:00
2025-04-17 08:15:16 -07:00
2025-04-29 14:21:28 -07:00
2025-04-24 17:25:34 -07:00
2025-04-17 08:15:15 -07:00
2025-04-17 08:15:15 -07:00
2025-04-29 10:08:12 -07:00
2025-04-15 08:24:35 -07:00
2024-11-01 12:53:19 -04:00
2024-09-13 14:32:24 -07:00
2025-01-28 13:02:22 -08:00
2025-04-24 17:25:34 -07:00
2025-04-15 08:24:35 -07:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-03-03 08:17:47 -08:00
2025-01-17 13:30:03 -08:00
2025-03-10 13:16:20 -07:00
2025-04-29 14:21:27 -07:00
2025-04-29 14:21:28 -07:00
2025-04-29 10:08:12 -07:00
2025-01-17 13:30:03 -08:00
2025-05-19 11:06:31 -07:00
2025-04-17 08:15:15 -07:00
2025-03-07 16:52:02 -08:00
2024-12-06 20:20:04 +09:00
2025-04-15 13:50:15 -07:00
2025-01-17 13:30:03 -08:00
2025-05-12 14:22:49 -07:00
2025-01-17 13:30:03 -08:00
2025-04-24 17:25:34 -07:00
2025-04-15 08:24:37 -07:00
2024-12-18 10:44:30 -08:00
2024-11-26 10:36:08 +09:00
2025-05-12 14:22:49 -07:00
2025-04-24 17:25:34 -07:00
2024-10-14 12:33:02 -04:00
2025-04-15 08:24:37 -07:00
2025-04-15 13:50:15 -07:00
2025-04-17 08:15:15 -07:00
2025-04-15 08:24:37 -07:00
2024-12-18 10:44:31 -08:00
2025-01-17 13:30:03 -08:00
2024-12-27 08:12:40 -08:00
2025-04-15 08:24:36 -07:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-04-08 13:59:11 -07:00
2025-04-15 08:24:37 -07:00
2025-04-24 17:25:34 -07:00
2025-04-15 08:24:37 -07:00
2025-04-29 14:21:28 -07:00
2025-04-24 17:25:34 -07:00
2025-05-08 12:36:32 -07:00
2025-04-15 13:50:15 -07:00
2025-04-15 08:24:37 -07:00
2025-04-29 14:21:28 -07:00
2025-04-15 08:24:37 -07:00
2025-03-07 16:52:01 -08:00
2025-01-31 10:06:11 -08:00
2024-09-13 14:33:30 -07:00
2025-04-15 08:24:37 -07:00
2025-03-21 01:45:16 -07:00
2025-02-04 09:51:41 -08:00
2024-12-23 09:32:17 -08:00
2025-04-17 08:15:15 -07:00
2025-04-24 17:25:34 -07:00
2025-06-25 08:20:27 -07:00
2025-04-16 13:54:19 -07:00
2025-03-26 16:26:10 +09:00
2025-01-17 13:30:03 -08:00
2025-01-17 13:30:03 -08:00
2025-04-29 10:08:13 -07:00
2025-04-24 17:25:34 -07:00
2025-04-15 08:24:37 -07:00
2025-02-06 12:23:54 -08:00
2025-02-28 13:54:11 -08:00
2024-12-06 20:20:03 +09:00
2025-04-24 17:25:33 -07:00
2025-02-28 13:54:11 -08:00
2025-04-24 17:25:34 -07:00
2025-03-29 01:04:40 -07:00
2025-03-07 16:52:01 -08:00
2024-12-06 20:20:03 +09:00
2025-04-29 14:21:28 -07:00
2025-01-31 09:44:16 -08:00
2025-04-29 10:08:13 -07:00
2025-04-15 08:24:35 -07:00
2025-03-17 15:39:03 -07:00
2024-09-13 14:32:24 -07:00
2025-04-15 08:24:37 -07:00
2024-09-13 14:32:24 -07:00
2025-04-24 17:25:34 -07:00
2025-04-15 08:24:37 -07:00
2025-04-29 10:08:13 -07:00
2025-04-24 17:25:34 -07:00
2025-05-19 11:06:31 -07:00
2025-04-08 14:47:37 -07:00
2025-01-17 13:30:03 -08:00
2024-12-18 10:44:30 -08:00
2025-01-28 13:02:22 -08:00
2025-03-07 16:52:01 -08:00
2024-09-13 14:32:24 -07:00
2025-03-07 16:52:01 -08:00
2025-04-15 08:24:35 -07:00
2025-04-17 08:15:15 -07:00