# [PATCH] GIT_SSH does not override ssh in git-svn

4 messages from 2009-08-17 to 2009-08-17. Participants: Karthik R, Johannes Schindelin, Junio C Hamano.
Thread: https://gitlist.dev/t/20645

## Karthik R, 2009-08-17 21:09

Subject: [PATCH] GIT_SSH does not override ssh in git-svn
Message-ID: <4A89C6F8.3010100@fastmail.fm>
URL: https://gitlist.dev/e/4A89C6F8.3010100%40fastmail.fm

```


Signed-off-by: Karthik R <karthikr@fastmail.fm>
---

Setting GIT_SSH when using "git svn clone svn+ssh://..." does not 
override the
default ssh; SVN_SSH needs to be set instead. Corrected this.

Also, on Windows, SVN_SSH needs to be set with \ escaped
  e.g., "C:\\PuTTY\\plink.exe"

See http://code.google.com/p/msysgit/issues/detail?id=305

 git-svn.perl |   10 ++++++++++
 1 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/git-svn.perl b/git-svn.perl
index b0bfb74..c932b6e 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -21,6 +21,16 @@ $Git::SVN::default_ref_id = $ENV{GIT_SVN_ID} || 
'git-svn';
 $Git::SVN::Ra::_log_window_size = 100;
 $Git::SVN::_minimize_url = 'unset';
 
+my $git_ssh_user_set = 1 if defined $ENV{GIT_SSH};
+if ($git_ssh_user_set) {
+       # If GIT_SSH is set, also set SVN_SSH...
+       $ENV{SVN_SSH} = $ENV{GIT_SSH};
+       # ... and escape \s in shell-variable on Windows
+       if ($^O eq 'MSWin32' || $^O eq 'msys') {
+               $ENV{SVN_SSH} =~ s/\\/\\\\/g;
+       }
+}
+
 $Git::SVN::Log::TZ = $ENV{TZ};
 $ENV{TZ} = 'UTC';
 $| = 1; # unbuffer STDOUT
-- 
1.5.4.3

```

## Johannes Schindelin, 2009-08-17 21:38

Subject: Re: [PATCH] GIT_SSH does not override ssh in git-svn
Message-ID: <alpine.DEB.1.00.0908172336410.8306@pacific.mpi-cbg.de>
URL: https://gitlist.dev/e/alpine.DEB.1.00.0908172336410.8306%40pacific.mpi-cbg.de
In-Reply-To: <4A89C6F8.3010100@fastmail.fm>

```
Hi,

On Mon, 17 Aug 2009, Karthik R wrote:

> 
> 
> Signed-off-by: Karthik R <karthikr@fastmail.fm>
> ---
> 
> Setting GIT_SSH when using "git svn clone svn+ssh://..." does not override the
> default ssh; SVN_SSH needs to be set instead. Corrected this.
> 
> Also, on Windows, SVN_SSH needs to be set with \ escaped
>  e.g., "C:\\PuTTY\\plink.exe"
> 
> See http://code.google.com/p/msysgit/issues/detail?id=305

This probably all wants to go into the commit message: it is very useful 
information!

Besides, I think you would like to formulate the commit subject more 
positive: "Respect GIT_SSH in git-svn" or some such.  After all, you fix 
the issue.  IOW use the imperative: you command git-svn to behave ;-)

Ciao,
Dscho

```

## Junio C Hamano, 2009-08-17 21:40

Subject: Re: [PATCH] GIT_SSH does not override ssh in git-svn
Message-ID: <7vhbw6qfuq.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7vhbw6qfuq.fsf%40alter.siamese.dyndns.org
In-Reply-To: <4A89C6F8.3010100@fastmail.fm>

```
Karthik R <karthikr@fastmail.fm> writes:

> +my $git_ssh_user_set = 1 if defined $ENV{GIT_SSH};
> +if ($git_ssh_user_set) {
> +       # If GIT_SSH is set, also set SVN_SSH...
> +       $ENV{SVN_SSH} = $ENV{GIT_SSH};
> +       # ... and escape \s in shell-variable on Windows
> +       if ($^O eq 'MSWin32' || $^O eq 'msys') {
> +               $ENV{SVN_SSH} =~ s/\\/\\\\/g;
> +       }
> +}
> +

Why not just

	if (defined $ENV{GIT_SSH}) {
        	...

???

> $Git::SVN::Log::TZ = $ENV{TZ};
> $ENV{TZ} = 'UTC';
> $| = 1; # unbuffer STDOUT
> -- 
> 1.5.4.3

```

## Karthik R, 2009-08-17 22:35

Subject: Re: [PATCH] GIT_SSH does not override ssh in git-svn
Message-ID: <4A89DB36.6060508@fastmail.fm>
URL: https://gitlist.dev/e/4A89DB36.6060508%40fastmail.fm
In-Reply-To: <7vhbw6qfuq.fsf@alter.siamese.dyndns.org>

```
Junio C Hamano wrote:
> Karthik R <karthikr@fastmail.fm> writes:
>
>   
>> +my $git_ssh_user_set = 1 if defined $ENV{GIT_SSH};
>> +if ($git_ssh_user_set) {
>> +       # If GIT_SSH is set, also set SVN_SSH...
>> +       $ENV{SVN_SSH} = $ENV{GIT_SSH};
>> +       # ... and escape \s in shell-variable on Windows
>> +       if ($^O eq 'MSWin32' || $^O eq 'msys') {
>> +               $ENV{SVN_SSH} =~ s/\\/\\\\/g;
>> +       }
>> +}
>> +
>>     
>
> Why not just
>
> 	if (defined $ENV{GIT_SSH}) {
>         	...
>
> ???
>
>   
>> $Git::SVN::Log::TZ = $ENV{TZ};
>> $ENV{TZ} = 'UTC';
>> $| = 1; # unbuffer STDOUT
>> -- 
>> 1.5.4.3
>>     
I think I had trouble getting that to work correctly on my Windows XP
box... I didn't dig into that (my perl was exactly 1 day old).

Does this look better (it does to me) ? If so, I can resend the patch
addressing Dscho's comments too.

+# If GIT_SSH is set, also set SVN_SSH...
+$ENV{SVN_SSH} = $ENV{GIT_SSH} if defined $ENV{GIT_SSH};
+# ... and escape \s in shell-variable on Windows
+if ($^O eq 'MSWin32' || $^O eq 'msys') {
+       $ENV{SVN_SSH} =~ s/\\/\\\\/g if defined $ENV{SVN_SSH};
+}
+

```
