[PATCH] git-svn: Use platform-specific svn authentication providers (e.g., gnome-keyring)

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

 



Hi folks,

I've create below patch to make git work with platform-specific
authentication providers (in particular, I needed this to get my svn
passwords out of gnome-keyring, which isn't working currently).

Index: git-core/git-svn
===================================================================
--- git-core.orig/git-svn       2010-09-08 20:11:16.000000000 +0200
+++ git-core/git-svn    2010-09-08 20:26:38.000000000 +0200
@@ -4830,6 +4830,7 @@
 
 sub _auth_providers () {
        [
+         @{SVN::Core::auth_get_platform_specific_client_providers(undef, undef)},
          SVN::Client::get_simple_provider(),
          SVN::Client::get_ssl_server_trust_file_provider(),
          SVN::Client::get_simple_prompt_provider(

Note that the auth_get_platform_specific_client_provides function used is not
working correctly in current versions of SVN, I've posted a separate patch to
fix the perl bindings there [1].

[1]: http://svn.haxx.se/dev/archive-2010-09/0171.shtml

Furthermore, the function accepts two parameters: $config and $pool. I've left
both undef here, which works. For $config, this means the default set of
providers is used. I'm not sure what the implications are of not passing a
$pool, any comments?

The _auth_providers function is called from:
 - Git::SVN::Ra::new, where a $config and $pool would be available.
 - Git::SVN::Ra::trees_match, where neither is readily available (though
   looking more closely, it seems that both values are in fact stored in $self in
   the new method, so they would be available.
 - cmd_branch, where neither seems to be available.

So it does not seem trivial to pass in useful values for these two arguments in
all places. Any ideas on what would be a good way to handle this?

What's the idea behind custom SVN configuration anyway?  From the sources, it
seems that only a few commands allow specifying the SVN configuration, through
the --config-dir option (namely init, migrate, fetch, clone, dcommit, set-tree,
multi-fetch, rebase, but notably not dcommit).

Gr.

Matthijs

Attachment: signature.asc
Description: Digital signature


[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]