threads / patch / 10171

patchgit-svn: respect Subversion's [auth] section configuration values

Subject: [PATCH] git-svn: respect Subversion's [auth] section configuration values

## tl;dr

7 messages between Oct 6, 2007 and Oct 15, 2007. Diffs are folded; open one to read it.

replies: 6people: 3as markdown or json

Eygene Ryabinkin· Oct 6, 2007, 18:57 UTC · lore

Parameters 'store-passwords' and 'store-auth-creds' from Subversion's configuration (~/.subversion/config) were not respected. This was fixed: the default values for these parameters are set to 'yes' to follow Subversion behaviour.

Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
---
 git-svn.perl |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)
Show changes to git-svn.perl +23 −0
diff --git a/git-svn.perl b/git-svn.perl
index 484b057..f7ef421 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -3051,6 +3051,29 @@ sub new {
 	  ]);
 	my $config = SVN::Core::config_get_config($config_dir);
 	$RA = undef;
+	my $dont_store_passwords = 1;
+	my $conf_t = ${$config}{'config'};
+	{
+		# The usage of $SVN::_Core::SVN_CONFIG_* variables
+		# produces warnings that variables are used only once.
+		# I had not found the better way to shut them up, so
+		# warnings are disabled in this block.
+		no warnings;
+		if (SVN::_Core::svn_config_get_bool($conf_t,
+		    $SVN::_Core::SVN_CONFIG_SECTION_AUTH,
+		    $SVN::_Core::SVN_CONFIG_OPTION_STORE_PASSWORDS,
+		    1) == 0) {
+			SVN::_Core::svn_auth_set_parameter($baton,
+			    $SVN::_Core::SVN_AUTH_PARAM_DONT_STORE_PASSWORDS,
+			    bless (\$dont_store_passwords, "_p_void"));
+		}
+		if (SVN::_Core::svn_config_get_bool($conf_t,
+		    $SVN::_Core::SVN_CONFIG_SECTION_AUTH,
+		    $SVN::_Core::SVN_CONFIG_OPTION_STORE_AUTH_CREDS,
+		    1) == 0) {
+			$Git::SVN::Prompt::_no_auth_cache = 1;
+		}
+	}
 	my $self = SVN::Ra->new(url => $url, auth => $baton,
 	                      config => $config,
 			      pool => SVN::Pool->new,
-- 
1.5.3.2


-- 
Eygene
Sam Vilain· Oct 7, 2007, 01:24 UTC · re: Eygene Ryabinkin · lore

Re: [PATCH] git-svn: respect Subversion's [auth] section configuration values

Eygene Ryabinkin wrote:
Show 5 quoted lines
> Parameters 'store-passwords' and 'store-auth-creds' from Subversion's
> configuration (~/.subversion/config) were not respected.  This was
> fixed: the default values for these parameters are set to 'yes' to
> follow Subversion behaviour.
>   

I saw this in the svn api before. It really is a strange API, requiring the user to get things like this right.

Show 22 quoted lines
> Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
> ---
>  git-svn.perl |   23 +++++++++++++++++++++++
>  1 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/git-svn.perl b/git-svn.perl
> index 484b057..f7ef421 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -3051,6 +3051,29 @@ sub new {
>  	  ]);
>  	my $config = SVN::Core::config_get_config($config_dir);
>  	$RA = undef;
> +	my $dont_store_passwords = 1;
> +	my $conf_t = ${$config}{'config'};
> +	{
> +		# The usage of $SVN::_Core::SVN_CONFIG_* variables
> +		# produces warnings that variables are used only once.
> +		# I had not found the better way to shut them up, so
> +		# warnings are disabled in this block.
> +		no warnings;
>   
You can use no warnings 'once';
Show 19 quoted lines
> +		if (SVN::_Core::svn_config_get_bool($conf_t,
> +		    $SVN::_Core::SVN_CONFIG_SECTION_AUTH,
> +		    $SVN::_Core::SVN_CONFIG_OPTION_STORE_PASSWORDS,
> +		    1) == 0) {
> +			SVN::_Core::svn_auth_set_parameter($baton,
> +			    $SVN::_Core::SVN_AUTH_PARAM_DONT_STORE_PASSWORDS,
> +			    bless (\$dont_store_passwords, "_p_void"));
> +		}
> +		if (SVN::_Core::svn_config_get_bool($conf_t,
> +		    $SVN::_Core::SVN_CONFIG_SECTION_AUTH,
> +		    $SVN::_Core::SVN_CONFIG_OPTION_STORE_AUTH_CREDS,
> +		    1) == 0) {
> +			$Git::SVN::Prompt::_no_auth_cache = 1;
> +		}
> +	}
>  	my $self = SVN::Ra->new(url => $url, auth => $baton,
>  	                      config => $config,
>  			      pool => SVN::Pool->new,
>   
Eric Wong· Oct 7, 2007, 03:24 UTC · re: Sam Vilain · lore

Re: [PATCH] git-svn: respect Subversion's [auth] section configuration values

Sam Vilain <sam@vilain.net> wrote:
Show 9 quoted lines
> Eygene Ryabinkin wrote:
> > +		# The usage of $SVN::_Core::SVN_CONFIG_* variables
> > +		# produces warnings that variables are used only once.
> > +		# I had not found the better way to shut them up, so
> > +		# warnings are disabled in this block.
> > +		no warnings;
> >   
> 
> You can use no warnings 'once';

Interesting, I should use that globally in git-svn and get rid of the $kill_stupid_warnings variable :)

-- 
Eric Wong
Eygene Ryabinkin· Oct 7, 2007, 10:14 UTC · re: Sam Vilain · lore

Re: [PATCH] git-svn: respect Subversion's [auth] section configuration values

Eric, Sam, good day.
Sat, Oct 06, 2007 at 08:22:41PM -0700, Eric Wong wrote:
Show 7 quoted lines
> Eygene Ryabinkin <rea-git@codelabs.ru> wrote:
> > Parameters 'store-passwords' and 'store-auth-creds' from Subversion's
> > configuration (~/.subversion/config) were not respected.  This was
> > fixed: the default values for these parameters are set to 'yes' to
> > follow Subversion behaviour.
> 
> Thanks.
You're welcome ;))
Sun, Oct 07, 2007 at 02:24:43PM +1300, Sam Vilain wrote:
Show 9 quoted lines
> Eygene Ryabinkin wrote:
> > Parameters 'store-passwords' and 'store-auth-creds' from Subversion's
> > configuration (~/.subversion/config) were not respected.  This was
> > fixed: the default values for these parameters are set to 'yes' to
> > follow Subversion behaviour.
> >   
> 
> I saw this in the svn api before.  It really is a strange API, requiring
> the user to get things like this right.

Yes, the need to parse the configuration and set some flags is rather strange. Looks like nobody cared to stuff the code like I had added to the configuration file parsing routines.

> You can use no warnings 'once';

Great, thanks for the pointer! Eric, do you want me to produce another patch or you'll correct mine?

-- 
Eygene
Eric Wong· Oct 7, 2007, 21:43 UTC · re: Eygene Ryabinkin · lore

Re: [PATCH] git-svn: respect Subversion's [auth] section configuration values

Eygene Ryabinkin <rea-git@codelabs.ru> wrote:
Show 15 quoted lines
> Eric, Sam, good day.
> Sun, Oct 07, 2007 at 02:24:43PM +1300, Sam Vilain wrote:
> > Eygene Ryabinkin wrote:
> > > Parameters 'store-passwords' and 'store-auth-creds' from Subversion's
> > > configuration (~/.subversion/config) were not respected.  This was
> > > fixed: the default values for these parameters are set to 'yes' to
> > > follow Subversion behaviour.
> > >   
> > 
> > I saw this in the svn api before.  It really is a strange API, requiring
> > the user to get things like this right.
> 
> Yes, the need to parse the configuration and set some flags is
> rather strange.  Looks like nobody cared to stuff the code like
> I had added to the configuration file parsing routines.
I think I started to look at it a while back and forgot about it :)
> > You can use no warnings 'once';
> 
> Great, thanks for the pointer!  Eric, do you want me to produce
> another patch or you'll correct mine?

Go ahead and produce another patch. I haven't had much time to work on git lately.

-- 
Eric Wong
Eygene Ryabinkin· Oct 15, 2007, 07:17 UTC · re: Eric Wong · lore

Re: [PATCH] git-svn: respect Subversion's [auth] section configuration values

Eric, good day.
Sun, Oct 07, 2007 at 02:43:34PM -0700, Eric Wong wrote:
Show 5 quoted lines
> > Great, thanks for the pointer!  Eric, do you want me to produce
> > another patch or you'll correct mine?
> 
> Go ahead and produce another patch.  I haven't had much time to
> work on git lately.

OK, the patch will follow in the separate thread. I had embedded "no warnings 'once'" both to my new code and to your code to get rid of the $kill_stupid_warnings. I did it selectively to minimize the impact of the "no warnings" pragma.

-- 
Eygene
Eric Wong· Oct 7, 2007, 03:22 UTC · re: Eygene Ryabinkin · lore

Re: [PATCH] git-svn: respect Subversion's [auth] section configuration values

Eygene Ryabinkin <rea-git@codelabs.ru> wrote:
> Parameters 'store-passwords' and 'store-auth-creds' from Subversion's
> configuration (~/.subversion/config) were not respected.  This was
> fixed: the default values for these parameters are set to 'yes' to
> follow Subversion behaviour.
Thanks.
> Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
Acked-by: Eric Wong <normalperson@yhbt.net>
Show 38 quoted lines
> ---
>  git-svn.perl |   23 +++++++++++++++++++++++
>  1 files changed, 23 insertions(+), 0 deletions(-)
> 
> diff --git a/git-svn.perl b/git-svn.perl
> index 484b057..f7ef421 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -3051,6 +3051,29 @@ sub new {
>  	  ]);
>  	my $config = SVN::Core::config_get_config($config_dir);
>  	$RA = undef;
> +	my $dont_store_passwords = 1;
> +	my $conf_t = ${$config}{'config'};
> +	{
> +		# The usage of $SVN::_Core::SVN_CONFIG_* variables
> +		# produces warnings that variables are used only once.
> +		# I had not found the better way to shut them up, so
> +		# warnings are disabled in this block.
> +		no warnings;
> +		if (SVN::_Core::svn_config_get_bool($conf_t,
> +		    $SVN::_Core::SVN_CONFIG_SECTION_AUTH,
> +		    $SVN::_Core::SVN_CONFIG_OPTION_STORE_PASSWORDS,
> +		    1) == 0) {
> +			SVN::_Core::svn_auth_set_parameter($baton,
> +			    $SVN::_Core::SVN_AUTH_PARAM_DONT_STORE_PASSWORDS,
> +			    bless (\$dont_store_passwords, "_p_void"));
> +		}
> +		if (SVN::_Core::svn_config_get_bool($conf_t,
> +		    $SVN::_Core::SVN_CONFIG_SECTION_AUTH,
> +		    $SVN::_Core::SVN_CONFIG_OPTION_STORE_AUTH_CREDS,
> +		    1) == 0) {
> +			$Git::SVN::Prompt::_no_auth_cache = 1;
> +		}
> +	}
>  	my $self = SVN::Ra->new(url => $url, auth => $baton,
>  	                      config => $config,
>  			      pool => SVN::Pool->new,
-- 
Eric Wong

← back to recent threads