diff options
| author | Patrick Steinhardt <ps@pks.im> | 2025-06-03 16:01:17 +0200 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2025-06-03 08:30:51 -0700 |
| commit | c367852d9e3c114fe02e16f4d56f259f12188e2a (patch) | |
| tree | aa19155bfd59a9ebe59415d6adb888681da398a2 | |
| parent | builtin/maintenance: split into foreground and background tasks (diff) | |
| download | git-c367852d9e3c114fe02e16f4d56f259f12188e2a.tar.gz git-c367852d9e3c114fe02e16f4d56f259f12188e2a.zip | |
builtin/maintenance: fix locking race with refs and reflogs tasks
As explained in the preceding commit, git-gc(1) knows to detach only
after it has already packed references and expired reflogs. This is done
to avoid racing around their respective lockfiles.
Adapt git-maintenance(1) accordingly and run the "pack-refs" and
"reflog-expire" tasks in the foreground. Note that the "gc" task has the
same issue, but the fix is a bit more involved there and will thus be
done in a subsequent commit.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | builtin/gc.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/builtin/gc.c b/builtin/gc.c index 72a695853e..fdd0dd09be 100644 --- a/builtin/gc.c +++ b/builtin/gc.c @@ -1587,12 +1587,12 @@ static const struct maintenance_task tasks[] = { }, [TASK_PACK_REFS] = { .name = "pack-refs", - .background = maintenance_task_pack_refs, + .foreground = maintenance_task_pack_refs, .auto_condition = pack_refs_condition, }, [TASK_REFLOG_EXPIRE] = { .name = "reflog-expire", - .background = maintenance_task_reflog_expire, + .foreground = maintenance_task_reflog_expire, .auto_condition = reflog_expire_condition, }, [TASK_WORKTREE_PRUNE] = { |
