git-svn: use platform specific auth providers
On Linux, this makes authentication using passwords from gnome-keyring and kwallet work (only the former was tested). On Mac OS X, this allows using the OS X Keychain. Signed-off-by: Matthijs Kooijman <matthijs@stdin.nl> Acked-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
parent
010b260e6f
commit
082afee621
20
git-svn.perl
20
git-svn.perl
@ -5444,7 +5444,7 @@ BEGIN {
|
||||
}
|
||||
|
||||
sub _auth_providers () {
|
||||
[
|
||||
my @rv = (
|
||||
SVN::Client::get_simple_provider(),
|
||||
SVN::Client::get_ssl_server_trust_file_provider(),
|
||||
SVN::Client::get_simple_prompt_provider(
|
||||
@ -5460,7 +5460,23 @@ sub _auth_providers () {
|
||||
\&Git::SVN::Prompt::ssl_server_trust),
|
||||
SVN::Client::get_username_prompt_provider(
|
||||
\&Git::SVN::Prompt::username, 2)
|
||||
]
|
||||
);
|
||||
|
||||
# earlier 1.6.x versions would segfault, and <= 1.5.x didn't have
|
||||
# this function
|
||||
if ($SVN::Core::VERSION gt '1.6.12') {
|
||||
my $config = SVN::Core::config_get_config($config_dir);
|
||||
my ($p, @a);
|
||||
# config_get_config returns all config files from
|
||||
# ~/.subversion, auth_get_platform_specific_client_providers
|
||||
# just wants the config "file".
|
||||
@a = ($config->{'config'}, undef);
|
||||
$p = SVN::Core::auth_get_platform_specific_client_providers(@a);
|
||||
# Insert the return value from
|
||||
# auth_get_platform_specific_providers
|
||||
unshift @rv, @$p;
|
||||
}
|
||||
\@rv;
|
||||
}
|
||||
|
||||
sub escape_uri_only {
|
||||
|
Loading…
Reference in New Issue
Block a user