[PATCH 0/2] sequencer: leave auto maintenance to the end of a rebase
From: Thomas Bachem via GitGitGadget <hidden>
Date: 2026-09-04 07:53:48
While looking into the rerere lock race in [1], the "git commit" a rebase spawns for a resolved pick turned out to be about the only place a rebase with the merge backend runs auto maintenance, and it runs it against the rebase itself. Phillip asked for auto maintenance to be kept out of a rebase altogether [2], and for the merge backend to run it once at the end the way the apply backend does [3]. Patrick would rather see that discussed on its own [4], hence this series. Patch 1 runs auto maintenance where the sequencer finishes a rebase, as the apply backend does. Patch 2 then passes maintenance.auto=false and gc.auto=0 to the "git commit", "git merge" and exec commands a rebase spawns, so that a rebase runs it once, at its end. Cherry-pick and revert are left as they are. Based on master. Independent of [1], which makes the rerere lock non-fatal: with both, a rebase neither spawns the gc nor dies on one that something else spawned. [1] [ref] [2] [ref] [3] [ref] [4] [ref] Thomas Bachem (2): sequencer: run auto maintenance once a rebase is done sequencer: keep auto maintenance out of the commands a rebase spawns sequencer.c | 32 ++++++++++++++++++++++++++++++++ t/t3418-rebase-continue.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) base-commit: 3cb9185f65410273787f74333cc027d2ea5daada Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2217%2Fthomasbachem%2Frebase-auto-maintenance-v1 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2217/thomasbachem/rebase-auto-maintenance-v1 Pull-Request: https://github.com/gitgitgadget/git/pull/2217 -- gitgitgadget