From: Patrick Steinhardt Date: Fri, 20 Feb 2026 10:15:04 GMT Subject: [PATCH 0/8] builtin/maintenance: use "geometric" strategy by default Message-ID: <20260220-b4-pks-maintenance-default-geometric-strategy-v1-0-faeb321ad13b@pks.im> Hi, this series converts our default strategy used by git-maintenance(1) from "gc" to "geometric". The aim of this is twofold: - It completes the conversion to a more flexible infrastructure for repository maintenance. git-maintenance(1) is structured around tasks that can be toggled on/off as needed, and this is a lot easier to extend going forward. - We start to use a more efficient repacking strategy by default, which should especially help large repositories out there. Out of these two, I think that the first point is actually the more important one. Unfortunately, a lot of our tests are racy or will fail with the new strategy. This is mostly because the new strategy may decide to optimize data structures in cases where the old strategy didn't, and because the tasks we perform might be different. The majority of this patch series thus adapts our tests accordingly. The actual change is a one-line change in the final commit. I was a bit torn initially whether or not I want to make the geometric strategy the default right away, or whether we might first want to use "feature.experimental" as an additional step. I'm quite happy to adapt the series accordingly, but for the initial version I thought it might invite more discussions if I pick the nuclear option :) Of course, no matter how we do this, it is still possible to revert back to the old strategy by setting "maintenance.strategy=gc". Thanks! Patrick --- Patrick Steinhardt (8): t: fix races caused by background maintenance t: disable maintenance where we verify object database structure t34xx: don't expire reflogs where it matters t5400: explicitly use "gc" strategy t5510: explicitly use "gc" strategy t6500: explicitly use "gc" strategy t7900: prepare for switch of the default strategy builtin/maintenance: use "geometric" strategy by default builtin/gc.c | 2 +- run-command.c | 2 +- t/t0081-find-pack.sh | 1 + t/t3404-rebase-interactive.sh | 2 ++ t/t3406-rebase-message.sh | 3 +++ t/t3431-rebase-fork-point.sh | 2 ++ t/t3432-rebase-fast-forward.sh | 2 ++ t/t5316-pack-delta-depth.sh | 1 + t/t5319-multi-pack-index.sh | 1 + t/t5326-multi-pack-bitmaps.sh | 3 ++- t/t5327-multi-pack-bitmaps-rev.sh | 3 ++- t/t5331-pack-objects-stdin.sh | 2 ++ t/t5332-multi-pack-reuse.sh | 1 + t/t5334-incremental-multi-pack-index.sh | 1 + t/t5400-send-pack.sh | 1 + t/t5500-fetch-pack.sh | 3 ++- t/t5510-fetch.sh | 1 + t/t5616-partial-clone.sh | 7 ++++--- t/t6500-gc.sh | 1 + t/t7700-repack.sh | 3 +++ t/t7900-maintenance.sh | 7 ++++++- t/test-lib.sh | 4 ++++ 22 files changed, 44 insertions(+), 9 deletions(-) --- base-commit: 73fd77805fc6406f31c36212846d9e2541d19321 change-id: 20260218-b4-pks-maintenance-default-geometric-strategy-17fcedf92461