diff mbox series

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

Message ID 767ea219e3365303535c8b5f0d8eadb28b5e872e.1723778779.git.matheus.tavb@gmail.com (mailing list archive)
State Superseded
Headers show
Series rebase -x: don't print "Executing:" msgs with --quiet | expand

Commit Message

Matheus Tavares Aug. 16, 2024, 3:26 a.m. UTC
`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(-)

Comments

Elijah Newren Aug. 16, 2024, 6:20 a.m. UTC | #1
On Thu, Aug 15, 2024 at 8:26 PM Matheus Tavares <matheus.tavb@gmail.com> wrote:
>
> `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

Makes sense and looks good to me.  It's kind surprising just how many
places we've ignored --quiet over the years...anyway, thanks for
fixing another one of them.
Patrick Steinhardt Aug. 16, 2024, 8:26 a.m. UTC | #2
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@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);
> +	}

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
Junio C Hamano Aug. 16, 2024, 5:34 p.m. UTC | #3
Patrick Steinhardt <ps@pks.im> writes:

>>  			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!

Thanks for a review.  I agree that this is almost there but would
want a test.
diff mbox series

Patch

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) {