Re: [PATCH 1/2] Add password parameter to git svn commands and use it when provided instead of defaulting to end-user prompt

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

 



Hi,

arnaud.brejeon@xxxxxxxxx wrote:

> Signed-off-by: Arnaud Brejeon <arnaud.brejeon <at> gmail.com>

Thanks.

Can you say a little more about the context?  Do you run a script that
wants to pass a password to 'git svn', do you type it each time on the
command line, or something else?  Is it ok that the password would
show up in "ps" output?  Would the platform's keyring or netrc be
usable here, or is there something in the context that avoids that?

> ---
>  git-svn.perl           |    3 +++
>  perl/Git/SVN/Prompt.pm |   12 +++++++++---
>  2 files changed, 12 insertions(+), 3 deletions(-)

If we're going to do this, it would also need to be documented in
Documentation/git-svn.txt, and ideally tested in one of the t/t91*.sh
test scripts.

The implementation looks reasonable from a quick glance.  Cc-ing
Eric for other comments.

Hope that helps,
Jonathan

(patch left unsnipped for reference)
> diff --git a/git-svn.perl b/git-svn.perl
> index ff1ce3d..07f0a6c 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -123,6 +123,7 @@ sub opt_prefix { return $_prefix || '' }
>  $Git::SVN::Fetcher::_placeholder_filename = ".gitignore";
>  $_q ||= 0;
>  my %remote_opts = ( 'username=s' => \$Git::SVN::Prompt::_username,
> +                    'password=s' => \$Git::SVN::Prompt::_password,
>                      'config-dir=s' => \$Git::SVN::Ra::config_dir,
>                      'no-auth-cache' => \$Git::SVN::Prompt::_no_auth_cache,
>                      'ignore-paths=s' => \$Git::SVN::Fetcher::_ignore_regex,
> @@ -206,6 +207,7 @@ my %cmd = (
>  	              'parents' => \$_parents,
>  	              'tag|t' => \$_tag,
>  	              'username=s' => \$Git::SVN::Prompt::_username,
> +	              'password=s' => \$Git::SVN::Prompt::_password,
>  	              'commit-url=s' => \$_commit_url } ],
>  	tag => [ sub { $_tag = 1; cmd_branch(@_) },
>  	         'Create a tag in the SVN repository',
> @@ -214,6 +216,7 @@ my %cmd = (
>  	           'dry-run|n' => \$_dry_run,
>  	           'parents' => \$_parents,
>  	           'username=s' => \$Git::SVN::Prompt::_username,
> +	           'password=s' => \$Git::SVN::Prompt::_password,
>  	           'commit-url=s' => \$_commit_url } ],
>  	'set-tree' => [ \&cmd_set_tree,
>  	                "Set an SVN repository to a git tree-ish",
> diff --git a/perl/Git/SVN/Prompt.pm b/perl/Git/SVN/Prompt.pm
> index e940b08..a94a847 100644
> --- a/perl/Git/SVN/Prompt.pm
> +++ b/perl/Git/SVN/Prompt.pm
> @@ -2,7 +2,7 @@ package Git::SVN::Prompt;
>  use strict;
>  use warnings;
>  require SVN::Core;
> -use vars qw/$_no_auth_cache $_username/;
> +use vars qw/$_no_auth_cache $_username $_password/;
>  
>  sub simple {
>  	my ($cred, $realm, $default_username, $may_save, $pool) = @_;
> @@ -17,8 +17,14 @@ sub simple {
>  	} else {
>  		username($cred, $realm, $may_save, $pool);
>  	}
> -	$cred->password(_read_password("Password for '" .
> -	                               $cred->username . "': ", $realm));
> +
> +	if (defined $_password && length $_password) {
> +		$cred->password($_password);
> +	} else {
> +		$cred->password(_read_password("Password for '" .
> +		                               $cred->username . "': ", $realm));
> +	}
> +
>  	$cred->may_save($may_save);
>  	$SVN::_Core::SVN_NO_ERROR;
>  }
> -- 
> 1.7.10.2 (Apple Git-33)
--
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]