diff hgext/convert/transport.py @ 8120:2b36ed5c1911

convert/svn: support more OS specific auth providers via svn 1.6 API
author Patrick Mezard <pmezard@gmail.com>
date Wed, 22 Apr 2009 23:13:39 +0200
parents cb0434795fcd
children c5f36402daad
line wrap: on
line diff
--- a/hgext/convert/transport.py	Wed Apr 22 17:15:59 2009 +0200
+++ b/hgext/convert/transport.py	Wed Apr 22 23:13:39 2009 +0200
@@ -44,8 +44,18 @@
         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)