[PATCH] rebase -x: don't print "Executing:" msgs with --quiet

Matheus Tavares
2024-08-16T03:26:30Z

`rebase --exec` doesn't obey --quiet and end up printing a few messages
about the cmd being executed:

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@riseup.net>
Signed-off-by: Matheus Tavares <matheus.tavb@gmail.com>
---
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);
+ }
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) {
--
2.46.0