Subject: [PATCH] Reintegrate: send "Huh?" warnings to stderr, not stdout

From: Erik Cervin-Edin <[email-masked]>
Date: Mon, 27 Apr 2026 12:47:38 +0200

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"

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.

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.

Signed-off-by: Erik Cervin-Edin <[email-masked]>
---
 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 &&
-- 
2.53.0