# HG changeset patch # User Patrick Mezard # Date 2009-04-22 21:13:39 # Node ID 2b36ed5c19113803971495635a612795aaa769df # Parent af44d0b953c6e1a1d638d3ee097432ccf20b5348 convert/svn: support more OS specific auth providers via svn 1.6 API diff --git a/hgext/convert/transport.py b/hgext/convert/transport.py --- a/hgext/convert/transport.py +++ b/hgext/convert/transport.py @@ -44,8 +44,18 @@ def _create_auth_baton(pool): svn.client.get_ssl_server_trust_file_provider(pool), ] # Platform-dependant authentication methods - if hasattr(svn.client, 'get_windows_simple_provider'): - providers.append(svn.client.get_windows_simple_provider(pool)) + getprovider = getattr(svn.core, 'svn_auth_get_platform_specific_provider', + None) + if getprovider: + # Available in svn >= 1.6 + for name in ('gnome_keyring', 'keychain', 'kwallet', 'windows'): + for type in ('simple', 'ssl_client_cert_pw', 'ssl_server_trust'): + p = getprovider(name, type, pool) + if p: + providers.append(p) + else: + if hasattr(svn.client, 'get_windows_simple_provider'): + providers.append(svn.client.get_windows_simple_provider(pool)) return svn.core.svn_auth_open(providers, pool)