]> git.ipfire.org Git - thirdparty/git.git/commitdiff
add-patch: do not show UI messages on stderr
authorRubén Justo <rjusto@gmail.com>
Mon, 29 Apr 2024 18:37:03 +0000 (20:37 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 30 Apr 2024 19:02:39 +0000 (12:02 -0700)
There is no need to show some UI messages on stderr, and yet doing so
may produce some undesirable results, such as messages appearing in an
unexpected order.

Let's use stdout for all UI messages, and adjusts the tests accordingly.

Signed-off-by: Rubén Justo <rjusto@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
add-patch.c
t/t3701-add-interactive.sh

index a06dd189854a7a8e680ce76b8995296f2e773b98..43abd57ef6aa66ecdbf03a8e0b515378b7fcc05e 100644 (file)
@@ -293,10 +293,9 @@ static void err(struct add_p_state *s, const char *fmt, ...)
        va_list args;
 
        va_start(args, fmt);
-       fputs(s->s.error_color, stderr);
-       vfprintf(stderr, fmt, args);
-       fputs(s->s.reset_color, stderr);
-       fputc('\n', stderr);
+       fputs(s->s.error_color, stdout);
+       vprintf(fmt, args);
+       puts(s->s.reset_color);
        va_end(args);
 }
 
@@ -1326,7 +1325,7 @@ static int apply_for_checkout(struct add_p_state *s, struct strbuf *diff,
                err(s, _("Nothing was applied.\n"));
        } else
                /* As a last resort, show the diff to the user */
-               fwrite(diff->buf, diff->len, 1, stderr);
+               fwrite(diff->buf, diff->len, 1, stdout);
 
        return 0;
 }
@@ -1777,9 +1776,9 @@ int run_add_p(struct repository *r, enum add_p_mode mode,
                        break;
 
        if (s.file_diff_nr == 0)
-               fprintf(stderr, _("No changes.\n"));
+               err(&s, _("No changes."));
        else if (binary_count == s.file_diff_nr)
-               fprintf(stderr, _("Only binary files changed.\n"));
+               err(&s, _("Only binary files changed."));
 
        add_p_state_clear(&s);
        return 0;
index bc55255b0a8da397ad14212035da9c4b9cb8d7d8..4d4eaca9a1a1673045752d2d8d3dd01a86f41b2f 100755 (executable)
@@ -44,13 +44,13 @@ test_expect_success 'warn about add.interactive.useBuiltin' '
        cat >expect <<-\EOF &&
        warning: the add.interactive.useBuiltin setting has been removed!
        See its entry in '\''git help config'\'' for details.
-       No changes.
        EOF
+       echo "No changes." >expect.out &&
 
        for v in = =true =false
        do
                git -c "add.interactive.useBuiltin$v" add -p >out 2>actual &&
-               test_must_be_empty out &&
+               test_cmp expect.out out &&
                test_cmp expect actual || return 1
        done
 '
@@ -334,13 +334,13 @@ test_expect_success 'different prompts for mode change/deleted' '
 
 test_expect_success 'correct message when there is nothing to do' '
        git reset --hard &&
-       git add -p 2>err &&
-       test_grep "No changes" err &&
+       git add -p >out &&
+       test_grep "No changes" out &&
        printf "\\0123" >binary &&
        git add binary &&
        printf "\\0abc" >binary &&
-       git add -p 2>err &&
-       test_grep "Only binary files changed" err
+       git add -p >out &&
+       test_grep "Only binary files changed" out
 '
 
 test_expect_success 'setup again' '