Skip to contentSkip to conversation

git-svn: Initialize SVN::Client with svn config instead of, auth for "git svn branch".

PATCH In review Monard Vong 2 participants 3 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 git-svn: Initialize SVN::Client with svn config instead of, auth for "git svn branch".

If a client certificate is required to connect to svn, "git svn branch" always prompt the user for the certificate location and password, even though those parameters are stored in svn file "server" located in svn config dir (generally ~/.subversion).
On the opposite, "git svn info/init/dcommit" read the config dir and do not prompt if the parameters are set.

This commit initializes for "git svn branch", the SVN::Client with the 'config' option instead of 'auth'. As decribed in the SVN documentation,
http://search.cpan.org/~mschwern/Alien-SVN-v1.7.17.1/src/subversion/subversion/bindings/swig/perl/native/Client.pm#METHODS
the SVN::Client will then read cached authentication options.

---
 git-svn.perl | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
git-svn.perl +3 -1
index 0a32372..1f41ee1 100755
@@ -1161,7 +1161,9 @@ sub cmd_branch {
     ::_req_svn();
 
     my $ctx = SVN::Client->new(
-        auth    => Git::SVN::Ra::_auth_providers(),
+        config => SVN::Core::config_get_config(
+            $Git::SVN::Ra::config_dir
+        ),
         log_msg => sub {
             ${ $_[0] } = defined $_message
                 ? $_message
Signature · 1 line
1.9.3
#1 lore raw
Quoted 7 lines · Monard Vong

If a client certificate is required to connect to svn, "git svn branch" always prompt the user for the certificate location and password, even though those parameters are stored in svn file "server" located in svn config dir (generally ~/.subversion).
On the opposite, "git svn info/init/dcommit" read the config dir and do not prompt if the parameters are set.

Quoted 7 lines

This commit initializes for "git svn branch", the SVN::Client with the 'config'
option instead of 'auth'. As decribed in the SVN documentation,
http://search.cpan.org/~mschwern/Alien-SVN-v1.7.17.1/src/subversion/subversion/bindings/swig/perl/native/Client.pm#METHODS
the SVN::Client will then read cached authentication options.

Thanks, I do not have a good way to test this, but the idea seems correct.

Your patch is whitespace mangled, and the commit message and subject needs to be improved (see Documentation/SubmittingPatches on how to describe your changes and how to send them without whitespace mangling.)

Thanks again.

#2 lore raw

Thanks for your reply, I updated commit message and subject, hoping it would be clearer. However I messed up "message-id" so it appear as a new message and not in the current thread. Sorry, still learning.

Quoted 23 lines · Eric Wong
Quoted 7 lines · Monard Vong

If a client certificate is required to connect to svn, "git svn branch" always prompt the user for the certificate location and password, even though those parameters are stored in svn file "server" located in svn config dir (generally ~/.subversion).
On the opposite, "git svn info/init/dcommit" read the config dir and do not prompt if the parameters are set.

Quoted 7 lines

This commit initializes for "git svn branch", the SVN::Client with the 'config'
option instead of 'auth'. As decribed in the SVN documentation,
http://search.cpan.org/~mschwern/Alien-SVN-v1.7.17.1/src/subversion/subversion/bindings/swig/perl/native/Client.pm#METHODS
the SVN::Client will then read cached authentication options.

Thanks, I do not have a good way to test this, but the idea seems correct.

Your patch is whitespace mangled, and the commit message and subject needs to be improved (see Documentation/SubmittingPatches on how to describe your changes and how to send them without whitespace mangling.)

Thanks again.