On Fri, Aug 16, 2024 at 12:26:19AM -0300, Matheus Tavares wrote: > `rebase --exec` doesn't obey --quiet and end up printing a few messages s/end/ends/ > about the cmd being executed: s/cmd/command/ > git rebase HEAD~3 --quiet --exec "printf foo >/dev/null" > Executing: printf foo >/dev/null > Executing: printf foo >/dev/null > Executing: printf foo >/dev/null > > Let's fix that. > > Suggested-by: Rodrigo Siqueira <siqueirajordao@xxxxxxxxxx> > Signed-off-by: Matheus Tavares <matheus.tavb@xxxxxxxxx> > --- > sequencer.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > diff --git a/sequencer.c b/sequencer.c > index 0291920f0b..d5824b41c1 100644 > --- a/sequencer.c > +++ b/sequencer.c > @@ -3793,12 +3793,14 @@ static int error_failed_squash(struct repository *r, > return error_with_patch(r, commit, subject, subject_len, opts, 1, 0); > } > > -static int do_exec(struct repository *r, const char *command_line) > +static int do_exec(struct repository *r, const char *command_line, int quiet) > { > struct child_process cmd = CHILD_PROCESS_INIT; > int dirty, status; > > - fprintf(stderr, _("Executing: %s\n"), command_line); > + if (!quiet) { > + fprintf(stderr, _("Executing: %s\n"), command_line); > + } We don't typically use braces around single-line statements, so they should be removed here. > cmd.use_shell = 1; > strvec_push(&cmd.args, command_line); > strvec_push(&cmd.env, "GIT_CHERRY_PICK_HELP"); > @@ -5013,7 +5015,7 @@ static int pick_commits(struct repository *r, > if (!opts->verbose) > term_clear_line(); > *end_of_arg = '\0'; > - res = do_exec(r, arg); > + res = do_exec(r, arg, opts->quiet); > *end_of_arg = saved; > > if (res) { Do we also want to add a test for this fix? Other than those nits the fix looks obviously correct to me, thanks! Patrick