{"thread":{"id":"37558","subject":"[PATCH] git-svn: delay term initialization","startedAt":"2014-09-14T08:04:09Z","lastAt":"2014-09-15T18:00:24Z","messageCount":3,"participants":["Eric Wong","Junio C Hamano"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"249383","messageId":"1410681849-3107-1-git-send-email-normalperson@yhbt.net","threadId":"37558","inReplyTo":null,"subject":"[PATCH] git-svn: delay term initialization","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2014-09-14T08:04:09Z","receivedAt":"2014-09-14T08:04:09Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"On my Debian 7 system, this gives annoying warnings when the output\nof \"git svn\" commands are redirected:\n\n    Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work.\n    The COLUMNS and LINES environment variables didn't work. The\n    resize program didn't work.\n\nSigned-off-by: Eric Wong <normalperson@yhbt.net>\n---\n Also, manually tested to ensure dcommit --interactive works.\n\n git-svn.perl | 18 +++++++++++-------\n 1 file changed, 11 insertions(+), 7 deletions(-)\n\ndiff --git a/git-svn.perl b/git-svn.perl\nindex 40565cd..ce0d7e1 100755\n--- a/git-svn.perl\n+++ b/git-svn.perl\n@@ -306,13 +306,16 @@ sub readline {\n }\n package main;\n \n-my $term = eval {\n-\t$ENV{\"GIT_SVN_NOTTY\"}\n-\t\t? new Term::ReadLine 'git-svn', \\*STDIN, \\*STDOUT\n-\t\t: new Term::ReadLine 'git-svn';\n-};\n-if ($@) {\n-\t$term = new FakeTerm \"$@: going non-interactive\";\n+my $term;\n+sub term_init {\n+\t$term = eval {\n+\t\t$ENV{\"GIT_SVN_NOTTY\"}\n+\t\t\t? new Term::ReadLine 'git-svn', \\*STDIN, \\*STDOUT\n+\t\t\t: new Term::ReadLine 'git-svn';\n+\t};\n+\tif ($@) {\n+\t\t$term = new FakeTerm \"$@: going non-interactive\";\n+\t}\n }\n \n my $cmd;\n@@ -424,6 +427,7 @@ sub ask {\n \tmy $default = $arg{default};\n \tmy $resp;\n \tmy $i = 0;\n+\tterm_init() unless $term;\n \n \tif ( !( defined($term->IN)\n             && defined( fileno($term->IN) )\n-- \nEW\n"},{"id":"249384","messageId":"20140914080730.GA6089@dcvr.yhbt.net","threadId":"37558","inReplyTo":"1410681849-3107-1-git-send-email-normalperson@yhbt.net","subject":"Re: [PATCH] git-svn: delay term initialization","fromName":"Eric Wong","fromEmail":"normalperson@yhbt.net","sentAt":"2014-09-14T08:07:30Z","receivedAt":"2014-09-14T08:07:30Z","isPatch":true,"sender":{"key":"e@80x24.org","avatar":null},"body":"Eric Wong <normalperson@yhbt.net> wrote:\n> On my Debian 7 system, this gives annoying warnings when the output\n\ns/gives/fixes/\n"},{"id":"249438","messageId":"xmqqbnqg932f.fsf@gitster.dls.corp.google.com","threadId":"37558","inReplyTo":"1410681849-3107-1-git-send-email-normalperson@yhbt.net","subject":"Re: [PATCH] git-svn: delay term initialization","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2014-09-15T18:00:24Z","receivedAt":"2014-09-15T18:00:24Z","isPatch":true,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Eric Wong <normalperson@yhbt.net> writes:\n\n> On my Debian 7 system, this gives annoying warnings when the output\n> of \"git svn\" commands are redirected:\n>\n>     Unable to get Terminal Size. The TIOCGWINSZ ioctl didn't work.\n>     The COLUMNS and LINES environment variables didn't work. The\n>     resize program didn't work.\n>\n> Signed-off-by: Eric Wong <normalperson@yhbt.net>\n> ---\n>  Also, manually tested to ensure dcommit --interactive works.\n\nMakes sense.\n\n>\n>  git-svn.perl | 18 +++++++++++-------\n>  1 file changed, 11 insertions(+), 7 deletions(-)\n>\n> diff --git a/git-svn.perl b/git-svn.perl\n> index 40565cd..ce0d7e1 100755\n> --- a/git-svn.perl\n> +++ b/git-svn.perl\n> @@ -306,13 +306,16 @@ sub readline {\n>  }\n>  package main;\n>  \n> -my $term = eval {\n> -\t$ENV{\"GIT_SVN_NOTTY\"}\n> -\t\t? new Term::ReadLine 'git-svn', \\*STDIN, \\*STDOUT\n> -\t\t: new Term::ReadLine 'git-svn';\n> -};\n> -if ($@) {\n> -\t$term = new FakeTerm \"$@: going non-interactive\";\n> +my $term;\n> +sub term_init {\n> +\t$term = eval {\n> +\t\t$ENV{\"GIT_SVN_NOTTY\"}\n> +\t\t\t? new Term::ReadLine 'git-svn', \\*STDIN, \\*STDOUT\n> +\t\t\t: new Term::ReadLine 'git-svn';\n> +\t};\n> +\tif ($@) {\n> +\t\t$term = new FakeTerm \"$@: going non-interactive\";\n> +\t}\n>  }\n>  \n>  my $cmd;\n> @@ -424,6 +427,7 @@ sub ask {\n>  \tmy $default = $arg{default};\n>  \tmy $resp;\n>  \tmy $i = 0;\n> +\tterm_init() unless $term;\n>  \n>  \tif ( !( defined($term->IN)\n>              && defined( fileno($term->IN) )\n"}]}