Files
git/builtin
Patrick Steinhardt 1b5074e614 builtin/maintenance: fix locking race when handling "gc" task
The "gc" task has a similar locking race as the one that we have fixed
for the "pack-refs" and "reflog-expire" tasks in preceding commits. Fix
this by splitting up the logic of the "gc" task:

  - We execute `gc_before_repack()` in the foreground, which contains
    the logic that git-gc(1) itself would execute in the foreground, as
    well.

  - We spawn git-gc(1) after detaching, but with a new hidden flag that
    suppresses calling `gc_before_repack()`.

Like this we have roughly the same logic as git-gc(1) itself and know to
repack refs and reflogs before detaching, thus fixing the race.

Note that `gc_before_repack()` is renamed to `gc_foreground_tasks()` to
better reflect what this function does.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-06-03 08:30:52 -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
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