* [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
@ 2010-02-23 11:11 Frank Li
2010-02-23 23:31 ` Laszlo Papp
2010-02-24 5:13 ` David Aguilar
0 siblings, 2 replies; 8+ messages in thread
From: Frank Li @ 2010-02-23 11:11 UTC (permalink / raw)
To: git; +Cc: Frank Li
Default git-svn read charactor from terminal to get password. GUI will
wait forever because don't know password need input.
Signed-off-by: Frank Li <lznuaa@gmail.com>
---
git-svn.perl | 27 +++++++++++++++++----------
1 files changed, 17 insertions(+), 10 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index 265852f..f9f104e 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3966,18 +3966,25 @@ sub username {
sub _read_password {
my ($prompt, $realm) = @_;
- print STDERR $prompt;
- STDERR->flush;
- require Term::ReadKey;
- Term::ReadKey::ReadMode('noecho');
my $password = '';
- while (defined(my $key = Term::ReadKey::ReadKey(0))) {
- last if $key =~ /[\012\015]/; # \n\r
- $password .= $key;
+ if (exists $ENV{GIT_ASKPASS}) {
+ open(PH, "$ENV{GIT_ASKPASS} \"$prompt\" |");
+ $password = <PH>;
+ $password =~ s/[\012\015]//; # \n\r
+ close(PH);
+ } else {
+ print STDERR $prompt;
+ STDERR->flush;
+ require Term::ReadKey;
+ Term::ReadKey::ReadMode('noecho');
+ while (defined(my $key = Term::ReadKey::ReadKey(0))) {
+ last if $key =~ /[\012\015]/; # \n\r
+ $password .= $key;
+ }
+ Term::ReadKey::ReadMode('restore');
+ print STDERR "\n";
+ STDERR->flush;
}
- Term::ReadKey::ReadMode('restore');
- print STDERR "\n";
- STDERR->flush;
$password;
}
--
1.7.0.83.g241b9.dirty
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
2010-02-23 11:11 [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password Frank Li
@ 2010-02-23 23:31 ` Laszlo Papp
2010-02-24 5:13 ` David Aguilar
1 sibling, 0 replies; 8+ messages in thread
From: Laszlo Papp @ 2010-02-23 23:31 UTC (permalink / raw)
To: Frank Li; +Cc: git
Nice to see someone who are interested in the solution to hack it :-)
On 2/23/10, Frank Li <lznuaa@gmail.com> wrote:
> Default git-svn read charactor from terminal to get password. GUI will
> wait forever because don't know password need input.
>
> Signed-off-by: Frank Li <lznuaa@gmail.com>
> ---
> git-svn.perl | 27 +++++++++++++++++----------
> 1 files changed, 17 insertions(+), 10 deletions(-)
>
> diff --git a/git-svn.perl b/git-svn.perl
> index 265852f..f9f104e 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -3966,18 +3966,25 @@ sub username {
>
> sub _read_password {
> my ($prompt, $realm) = @_;
> - print STDERR $prompt;
> - STDERR->flush;
> - require Term::ReadKey;
> - Term::ReadKey::ReadMode('noecho');
> my $password = '';
> - while (defined(my $key = Term::ReadKey::ReadKey(0))) {
> - last if $key =~ /[\012\015]/; # \n\r
> - $password .= $key;
> + if (exists $ENV{GIT_ASKPASS}) {
> + open(PH, "$ENV{GIT_ASKPASS} \"$prompt\" |");
> + $password = <PH>;
> + $password =~ s/[\012\015]//; # \n\r
> + close(PH);
> + } else {
> + print STDERR $prompt;
> + STDERR->flush;
> + require Term::ReadKey;
> + Term::ReadKey::ReadMode('noecho');
> + while (defined(my $key = Term::ReadKey::ReadKey(0))) {
> + last if $key =~ /[\012\015]/; # \n\r
> + $password .= $key;
> + }
> + Term::ReadKey::ReadMode('restore');
> + print STDERR "\n";
> + STDERR->flush;
> }
> - Term::ReadKey::ReadMode('restore');
> - print STDERR "\n";
> - STDERR->flush;
> $password;
> }
>
> --
> 1.7.0.83.g241b9.dirty
>
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
2010-02-23 11:11 [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password Frank Li
2010-02-23 23:31 ` Laszlo Papp
@ 2010-02-24 5:13 ` David Aguilar
2010-02-24 5:31 ` Junio C Hamano
2010-02-24 8:13 ` Frank Li
1 sibling, 2 replies; 8+ messages in thread
From: David Aguilar @ 2010-02-24 5:13 UTC (permalink / raw)
To: Frank Li; +Cc: git
On Tue, Feb 23, 2010 at 07:11:03PM +0800, Frank Li wrote:
> Default git-svn read charactor from terminal to get password. GUI will
> wait forever because don't know password need input.
What do you think about this message instead?
-- >8 --
Subject: [PATCH] git-svn: Support retrieving passwords with GIT_ASKPASS
git-svn reads passwords from an interactive terminal.
This behavior causes GUIs to hang waiting for git-svn to
complete.
Fix this problem by allowing a password-retrieving command
to be specified in GIT_ASKPASS. SSH_ASKPASS is supported
as a fallback when GIT_ASKPASS is not provided.
(see note below)
> diff --git a/git-svn.perl b/git-svn.perl
> index 265852f..f9f104e 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -3966,18 +3966,25 @@ sub username {
>
> sub _read_password {
> my ($prompt, $realm) = @_;
> - print STDERR $prompt;
> - STDERR->flush;
> - require Term::ReadKey;
> - Term::ReadKey::ReadMode('noecho');
> my $password = '';
> - while (defined(my $key = Term::ReadKey::ReadKey(0))) {
> - last if $key =~ /[\012\015]/; # \n\r
> - $password .= $key;
> + if (exists $ENV{GIT_ASKPASS}) {
> + open(PH, "$ENV{GIT_ASKPASS} \"$prompt\" |");
> + $password = <PH>;
> + $password =~ s/[\012\015]//; # \n\r
> + close(PH);
I think Junio mentioned this in passing but I'll repeat it.
Many users already have SSH_ASKPASS defined. It would be very
nice if we supported SSH_ASKPASS as a fallback when GIT_ASKPASS
is not provided.
--
David
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
2010-02-24 5:13 ` David Aguilar
@ 2010-02-24 5:31 ` Junio C Hamano
2010-02-24 8:13 ` Frank Li
1 sibling, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2010-02-24 5:31 UTC (permalink / raw)
To: David Aguilar; +Cc: Frank Li, git
David Aguilar <davvid@gmail.com> writes:
> I think Junio mentioned this in passing but I'll repeat it.
>
> Many users already have SSH_ASKPASS defined. It would be very
> nice if we supported SSH_ASKPASS as a fallback when GIT_ASKPASS
> is not provided.
Thanks; I think git-gui does something similar.
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
2010-02-24 5:13 ` David Aguilar
2010-02-24 5:31 ` Junio C Hamano
@ 2010-02-24 8:13 ` Frank Li
2010-02-25 9:15 ` David Aguilar
1 sibling, 1 reply; 8+ messages in thread
From: Frank Li @ 2010-02-24 8:13 UTC (permalink / raw)
To: David Aguilar; +Cc: git
> -- >8 --
> Subject: [PATCH] git-svn: Support retrieving passwords with GIT_ASKPASS
>
> git-svn reads passwords from an interactive terminal.
> This behavior causes GUIs to hang waiting for git-svn to
> complete.
>
> Fix this problem by allowing a password-retrieving command
> to be specified in GIT_ASKPASS. SSH_ASKPASS is supported
> as a fallback when GIT_ASKPASS is not provided.
>
Okay, I will change it.
>
> I think Junio mentioned this in passing but I'll repeat it.
>
> Many users already have SSH_ASKPASS defined. It would be very
> nice if we supported SSH_ASKPASS as a fallback when GIT_ASKPASS
> is not provided.
>
I consider add such fallback at git.c. when user use git svn, git
main program will be called firstly.
git main entry will check if GIT_ASKPASS and SSH_ASKPASS, if
SSH_ASKPASS set but GIT_ASKPASS not set,
GIT_ASKPASS will be set as SSH_ASKPASS.
Do you think we needs add such check at git-svn.perl ?
best regards
Frank Li
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
2010-02-24 8:13 ` Frank Li
@ 2010-02-25 9:15 ` David Aguilar
2010-02-25 17:15 ` Laszlo Papp
2010-02-26 0:15 ` Frank Li
0 siblings, 2 replies; 8+ messages in thread
From: David Aguilar @ 2010-02-25 9:15 UTC (permalink / raw)
To: Frank Li; +Cc: Git List, Junio C Hamano, Eric Wong
On Wed, Feb 24, 2010 at 04:13:01PM +0800, Frank Li wrote:
>
> > Many users already have SSH_ASKPASS defined. It would be very
> > nice if we supported SSH_ASKPASS as a fallback when GIT_ASKPASS
> > is not provided.
> >
>
> I consider add such fallback at git.c. when user use git svn, git
> main program will be called firstly.
> git main entry will check if GIT_ASKPASS and SSH_ASKPASS, if
> SSH_ASKPASS set but GIT_ASKPASS not set,
> GIT_ASKPASS will be set as SSH_ASKPASS.
>
> Do you think we needs add such check at git-svn.perl ?
>
> best regards
> Frank Li
Interesting question. I had never thought of moving the
fallback to git.
I would have done it in the script as a localized fix but
I definately see the value in aiding scripts from
all having to implement this same fallback, though:
$ENV{GIT_ASKPASS} ||= $ENV{SSH_ASKPASS};
If Junio, Eric, and the git list think that this should
live in git instead then by all means.
--
David
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
2010-02-25 9:15 ` David Aguilar
@ 2010-02-25 17:15 ` Laszlo Papp
2010-02-26 0:15 ` Frank Li
1 sibling, 0 replies; 8+ messages in thread
From: Laszlo Papp @ 2010-02-25 17:15 UTC (permalink / raw)
To: David Aguilar; +Cc: Frank Li, Git List, Junio C Hamano, Eric Wong
On Thu, Feb 25, 2010 at 10:15 AM, David Aguilar <davvid@gmail.com> wrote:
> On Wed, Feb 24, 2010 at 04:13:01PM +0800, Frank Li wrote:
>>
>> > Many users already have SSH_ASKPASS defined. It would be very
>> > nice if we supported SSH_ASKPASS as a fallback when GIT_ASKPASS
>> > is not provided.
>> >
>>
>> I consider add such fallback at git.c. when user use git svn, git
>> main program will be called firstly.
>> git main entry will check if GIT_ASKPASS and SSH_ASKPASS, if
>> SSH_ASKPASS set but GIT_ASKPASS not set,
>> GIT_ASKPASS will be set as SSH_ASKPASS.
>>
>> Do you think we needs add such check at git-svn.perl ?
>>
>> best regards
>> Frank Li
>
> Interesting question. I had never thought of moving the
> fallback to git.
>
> I would have done it in the script as a localized fix but
> I definately see the value in aiding scripts from
> all having to implement this same fallback, though:
>
> $ENV{GIT_ASKPASS} ||= $ENV{SSH_ASKPASS};
>
> If Junio, Eric, and the git list think that this should
> live in git instead then by all means.
>
> --
> David
> --
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
I don't think localized fix in every scripts, third party application
is the good and the trivial solution for this issue. I'm just a simple
TortoiseGIT user, but I guess other GUIs, frontends suffer from this
problem too.
Best Regards,
Laszlo Papp
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password
2010-02-25 9:15 ` David Aguilar
2010-02-25 17:15 ` Laszlo Papp
@ 2010-02-26 0:15 ` Frank Li
1 sibling, 0 replies; 8+ messages in thread
From: Frank Li @ 2010-02-26 0:15 UTC (permalink / raw)
To: David Aguilar; +Cc: Git List, Junio C Hamano, Eric Wong
>
> I would have done it in the script as a localized fix but
> I definately see the value in aiding scripts from
> all having to implement this same fallback, though:
>
> $ENV{GIT_ASKPASS} ||= $ENV{SSH_ASKPASS};
>
Add it at [PATCH v2 1/3] git-svn: Support retrieving passwords with GIT_ASKPASS
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-02-26 0:15 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-02-23 11:11 [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password Frank Li
2010-02-23 23:31 ` Laszlo Papp
2010-02-24 5:13 ` David Aguilar
2010-02-24 5:31 ` Junio C Hamano
2010-02-24 8:13 ` Frank Li
2010-02-25 9:15 ` David Aguilar
2010-02-25 17:15 ` Laszlo Papp
2010-02-26 0:15 ` Frank Li
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).