Re: [PATCH v4 2/3] rebase, cherry-pick, revert: run auto maintenance when done
- From
Thomas Bachem <mail@thomasbachem.com>
- Date
- Sep 22, 2026, 07:38 UTC
- Message-ID
- <CAA0xjtpEXxuEkQRjwVACYfbk97WRdygi5W5ODaEF_5rfH5w+fQ@mail.gmail.com>
- In-Reply-To
- <aqOvAttPrhUIP_7U@pks.im>
Hi Patrick,
On 11/09/2026 09:34, Patrick Steinhardt wrote:
Show 6 quoted lines
> The only exception that I could spot is when we abort the sequencer. But > I'd rather have us call auto-maintenance when `pick_commits()` is done > and when we abort rather than having every user of the sequencer do it > manually. > > Or am I missing something here?
The single picks. "git cherry-pick <commit>" and "git revert <commit>" return from sequencer_pick_revisions() through single_pick(). Their "--continue" returns from sequencer_continue() through continue_single_pick() when there is no todo file, and their "--skip" from sequencer_skip() when there is no sequencer directory. None of the three reaches pick_commits().
The paragraph you proposed for 2/3 says it too:
Show 6 quoted lines
> Unfortunately, there is no single exit point for this backend where we > could add a call to `run_auto_maintenance()`. While one might expect > that we could simply trigger auto-maintenance in `pick_commits()` and > call it a day, a single pick as it is performed by e.g. git-revert(1) > never executes that function. So instead, manually trigger > auto-maintenance at several sites.
2/3 in v5 names those three returns. My answer went out under the 1/3 subject by mistake [1].
Phillip's answer when I offered the move [2]:
> That works for we and means we don't have to sprinkle calls to > run_auto_maintenance() around to accommodate the different code paths > for single and multiple picks.
So inside the sequencer the call would go to the end of pick_commits(), to those three returns, and to the aborts. "git rebase --abort" already runs it from finish_rebase(), so that leaves the cherry-pick and revert aborts. The two builtins are the sequencer's only callers, which is why I moved it there. Both work for me, say which and I'll reroll.
Thanks, Thomas
[1] <CAA0xjtoW3JfSbuBot0ANFiDEhEv1N-Di4mSd5tYfgkFEeh07Nw@mail.gmail.com> [2] <1e9f7b72-9f77-46e9-950e-df60b5a0539f@gmail.com>