threads / patch / 22356

patchIf deriving SVN_SSH from GIT_SSH on msys, also add quotes

Subject: [PATCH] If deriving SVN_SSH from GIT_SSH on msys, also add quotes

## tl;dr

5 messages between Jan 23, 2010 and Jan 23, 2010. Diffs are folded; open one to read it.

replies: 4people: 3as markdown or json

Sebastian Schuberth· Jan 23, 2010, 10:22 UTC · lore

In contrast to GIT_SSH, SVN_SSH requires quotes for paths that contain spaces. As GIT_SSH will not work if it contains quotes, it is save to assume it never contains quotes. Also, adding quotes to SVN_SSH for paths that do not contain spaces does no harm. So we always add quotes when deriving SVN_SSH from GIT_SSH on msys.

This fixes msysGit issue 385, see http://code.google.com/p/msysgit/issues/detail?id=385

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 git-svn.perl |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-svn.perl +1 −0
diff --git a/git-svn.perl b/git-svn.perl
index 650c9e5..ef39a9f 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -26,6 +26,7 @@ if (! exists $ENV{SVN_SSH}) {
 		$ENV{SVN_SSH} = $ENV{GIT_SSH};
 		if ($^O eq 'msys') {
 			$ENV{SVN_SSH} =~ s/\\/\\\\/g;
+			$ENV{SVN_SSH} =~ s/(.*)/"$1"/;
 		}
 	}
 }
-- 
1.6.6.265.ga0f40
Sverre Rabbelier· Jan 23, 2010, 11:22 UTC · re: Sebastian Schuberth · lore

Re: [PATCH] If deriving SVN_SSH from GIT_SSH on msys, also add quotes

Heya,
On Sat, Jan 23, 2010 at 11:22, Sebastian Schuberth <sschuberth@gmail.com> wrote:
> spaces. As GIT_SSH will not work if it contains quotes, it is save to
s/save/safe/
-- 
Cheers,

Sverre Rabbelier
Sebastian Schuberth· Jan 23, 2010, 14:20 UTC · re: Sverre Rabbelier · lore

Re: [PATCH] If deriving SVN_SSH from GIT_SSH on msys, also add quotes

In contrast to GIT_SSH, SVN_SSH requires quotes for paths that contain spaces. As GIT_SSH will not work if it contains quotes, it is safe to assume it never contains quotes. Also, adding quotes to SVN_SSH for paths that do not contain spaces does no harm. So we always add quotes when deriving SVN_SSH from GIT_SSH.

This fixes msysGit issue 385, see http://code.google.com/p/msysgit/issues/detail?id=385

Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
---
 git-svn.perl |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to git-svn.perl +1 −0
diff --git a/git-svn.perl b/git-svn.perl
index 650c9e5..ef39a9f 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -26,6 +26,7 @@ if (! exists $ENV{SVN_SSH}) {
 		$ENV{SVN_SSH} = $ENV{GIT_SSH};
 		if ($^O eq 'msys') {
 			$ENV{SVN_SSH} =~ s/\\/\\\\/g;
+			$ENV{SVN_SSH} =~ s/(.*)/"$1"/;
 		}
 	}
 }
-- 
1.6.6.265.ga0f40
Junio C Hamano· Jan 23, 2010, 19:33 UTC · re: Sebastian Schuberth · lore

Re: [PATCH] If deriving SVN_SSH from GIT_SSH on msys, also add quotes

Sebastian Schuberth <sschuberth@gmail.com> writes:
Show 10 quoted lines
> In contrast to GIT_SSH, SVN_SSH requires quotes for paths that contain
> spaces. As GIT_SSH will not work if it contains quotes, it is safe to
> assume it never contains quotes. Also, adding quotes to SVN_SSH for paths
> that do not contain spaces does no harm. So we always add quotes when
> deriving SVN_SSH from GIT_SSH.
>
> This fixes msysGit issue 385, see
> http://code.google.com/p/msysgit/issues/detail?id=385
>
> Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>

As the patch clearly is inside "msys-only" codepath, I don't mind bypassing Eric and apply this directly to my tree before I tag 1.7.0-rc0, but may I ask why this quoting magic matters only on msys?

Show 18 quoted lines
> ---
>  git-svn.perl |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/git-svn.perl b/git-svn.perl
> index 650c9e5..ef39a9f 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -26,6 +26,7 @@ if (! exists $ENV{SVN_SSH}) {
>  		$ENV{SVN_SSH} = $ENV{GIT_SSH};
>  		if ($^O eq 'msys') {
>  			$ENV{SVN_SSH} =~ s/\\/\\\\/g;
> +			$ENV{SVN_SSH} =~ s/(.*)/"$1"/;
>  		}
>  	}
>  }
> -- 
> 1.6.6.265.ga0f40
Sebastian Schuberth· Jan 23, 2010, 20:11 UTC · re: Junio C Hamano · lore

Re: [PATCH] If deriving SVN_SSH from GIT_SSH on msys, also add quotes

On Sat, Jan 23, 2010 at 20:33, Junio C Hamano <gitster@pobox.com> wrote:
Show 8 quoted lines
>> This fixes msysGit issue 385, see
>> http://code.google.com/p/msysgit/issues/detail?id=385
>>
>> Signed-off-by: Sebastian Schuberth <sschuberth@gmail.com>
>
> As the patch clearly is inside "msys-only" codepath, I don't mind
> bypassing Eric and apply this directly to my tree before I tag 1.7.0-rc0,
> but may I ask why this quoting magic matters only on msys?

To be honest, I'm not exactly sure why this is required. Maybe the SVN Perl module does some different path mangling than a normal MSYS SVN binary would do. We're already setting SVN_SSH like this (that is, using double-backslashes and quotes) in the msysGit installer, see the discussion at [1]. This patch basically just does the same thing for people that initially chose to not modify the environment during the msysGit installation, but later change GIT_SSH manually, and forget to set SVN_SSH, too.

[1] http://code.google.com/p/msysgit/issues/detail?id=305#c8
-- 
Sebastian Schuberth

← back to recent threads