Re: [PATCH 1/1] Use GIT_ASKPASS environment to launch thirdpart UI app to get password

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]