Re: [PATCH v4 1/3] config: add git_config_append_parameter()
- From
Thomas Bachem <mail@thomasbachem.com>
- Date
- Sep 14, 2026, 07:12 UTC
- Message-ID
- <CAA0xjtoW3JfSbuBot0ANFiDEhEv1N-Di4mSd5tYfgkFEeh07Nw@mail.gmail.com>
- In-Reply-To
- <aqOu-dvjAkkqx2Sr@pks.im>
Hi Patrick,
On 11/09/2026 09:34, Patrick Steinhardt wrote:
> This paragraph still doesn't make a lot of sense. How about:
I'll take your text, with two corrections.
> execute auto-maintenance at all. The only exception is when a conflict > happens, as the user would have to manually commit the result via > git-commit(1), and that command triggers auto-maintenance for us.
It's the sequencer that spawns "git commit" there, on "--continue", and it spawns one for an edited message as well. That is why the next patch has to turn maintenance off in the spawned commands.
> In contrast to that, the "apply" backend of the sequencer _does_ run
The apply backend is "git am", driven from builtin/rebase.c, so I'll say "the apply backend of git rebase".
> ... is still kind of dubious. As far as I can see, almost everything > does end up in `pick_commits()` eventually:
[...]
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>" take the single_pick() branch at the top of sequencer_pick_revisions() and return from there. Their "--continue" returns from sequencer_continue() through continue_single_pick() when there is no todo file, and their "--skip" returns from sequencer_skip() right after skip_single_pick(). None of them gets to pick_commits(). For rebase you're right, complete_action() and sequencer_continue() both end up there.
So inside the sequencer the call would go to the end of pick_commits() and to those three returns, plus the aborts if you want them there. "git rebase --abort" already runs it from finish_rebase(), so that would be cherry-pick and revert only. The two builtins are the sequencer's only callers, which is why I moved it to them, and Phillip preferred that too, for the single pick paths. Both work for me, say which and I'll reroll. I'll name the functions above in the message whichever you pick.
Thanks, Thomas