Git development
 help / color / mirror / Atom feed
From: Tian Yuchen <cat@malon.dev>
To: git@vger.kernel.org, gitster@pobox.com
Subject: Re: [PATCH] Reintegrate: send "Huh?" warnings to stderr, not stdout
Date: Wed, 29 Apr 2026 02:05:16 +0800	[thread overview]
Message-ID: <5a821f71-3d6e-4942-9bdb-257617484a6b@malon.dev> (raw)
In-Reply-To: <ae896PlyiYeqldFN@mbp>

On 4/27/26 18:47, Erik Cervin-Edin wrote:
> The "Huh?: $msg" warning in show_merge(), emitted when a first-parent
> merge subject does not match either "Merge branch '...'" or "Merge
> remote branch '...'", uses
> 
> 	echo 2>&1 "Huh?: $msg"

Yes, this is clearly wrong.

> The "2>&1" redirect dupes stderr onto stdout's destination; it does
> not change where stdout itself points.  Since echo writes to stdout,
> the "Huh?:" message lands on stdout regardless -- as would any
> command's normal output.  

> The intent appears to have been ">&2", which dupes stdout onto stderr.

It would be better for me if this sentence (i.e., what was the code 
originally *intended* to do before the patch?) were placed right at the 
beginning. Something similar to:

	In show_merge(), the warning "Huh?: $msg" is emitted to stdout because 
it uses the erroneous redirect `echo 2>&1`. The intent was clearly to 
use `>&2` to print to stderr...

Of course, it’s up to you ;)

> 
> In the common Reintegrate invocation that captures stdout, e.g.
> 
> 	Meta/Reintegrate next..seen >Meta/redo-seen.sh
> 
> this means the warning is silently embedded in the generated heredoc
> body instead of being printed to the maintainer's terminal.  The
> resulting redo-* script is corrupted with a "Huh?:..." line and the
> maintainer has no diagnostic that something went wrong.
> 
> Every other diagnostic in this script already uses ">&2"; this line
> is the lone outlier.
> 
> Use ">&2" so the warning reaches stderr as intended.

Overall, the reasoning is nice :-)

> Signed-off-by: Erik Cervin-Edin <erik@cervined.in>
> ---
>   Reintegrate | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/Reintegrate b/Reintegrate
> index a1e67a0330..6fdc7c5f41 100755
> --- a/Reintegrate
> +++ b/Reintegrate
> @@ -327,7 +327,7 @@ show_merge () {
>   		merge_hier=
>   		;;
>   	*)
> -		echo 2>&1 "Huh?: $msg"
> +		echo >&2 "Huh?: $msg"
>   		return
>   		;;
>   	esac &&

Thanks, Yuchen


  reply	other threads:[~2026-04-28 18:05 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-27 10:47 [PATCH] Reintegrate: send "Huh?" warnings to stderr, not stdout Erik Cervin-Edin
2026-04-28 18:05 ` Tian Yuchen [this message]
2026-05-04 10:03   ` Erik Cervin Edin
2026-05-04 10:28 ` [PATCH v2] " erik

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5a821f71-3d6e-4942-9bdb-257617484a6b@malon.dev \
    --to=cat@malon.dev \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox