That's odd. I have $| = 1; at the beginning of git-svn. Maybe
some module somewhere is unsetting $|...
Anyways, I think STDERR is more correct for prompts.
From: Eric Wong <normalperson@yhbt.net>
Date: Mon, 15 Jan 2007 20:15:55 -0800
Subject: [PATCH] git-svn: print and flush authentication prompts to STDERR
People that redirect STDOUT output should always see STDERR
prompts interactively.
STDERR should always be flushed without buffering, so
they should always show up. If that is unset, we still
explicitly flush by calling STDERR->flush.
The svn command-line client prompts to STDERR, too.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
diff --git a/git-svn.perl b/git-svn.perl
index 9986a0c..b8ede9c 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -1918,7 +1918,8 @@ sub _simple_prompt {
$default_username = $_username if defined $_username;
if (defined $default_username && length $default_username) {
if (defined $realm && length $realm) {
- print "Authentication realm: $realm\n";
+ print STDERR "Authentication realm: $realm\n";
+ STDERR->flush;
}
$cred->username($default_username);
} else {
@@ -1933,36 +1934,38 @@ sub _simple_prompt {
sub _ssl_server_trust_prompt {
my ($cred, $realm, $failures, $cert_info, $may_save, $pool) = @_;
$may_save = undef if $_no_auth_cache;
- print "Error validating server certificate for '$realm':\n";
+ print STDERR "Error validating server certificate for '$realm':\n";
if ($failures & $SVN::Auth::SSL::UNKNOWNCA) {
- print " - The certificate is not issued by a trusted ",
+ print STDERR " - The certificate is not issued by a trusted ",
"authority. Use the\n",
" fingerprint to validate the certificate manually!\n";
}
if ($failures & $SVN::Auth::SSL::CNMISMATCH) {
- print " - The certificate hostname does not match.\n";
+ print STDERR " - The certificate hostname does not match.\n";
}
if ($failures & $SVN::Auth::SSL::NOTYETVALID) {
- print " - The ...