threads / bug / 22005

[BUG REPORT] git-svn fails to create branches if ssh+svn gets used as protocol.

Subject: [BUG REPORT] git-svn fails to create branches if ssh+svn gets used as protocol.

## tl;dr

4 messages between Dec 22, 2009 and Dec 23, 2009.

replies: 3people: 2as markdown or json

Florian Köberle· Dec 22, 2009, 09:53 UTC · lore
Hello

I haven't seen a link to a bug tracker so I am sending this bug report to the mailing list, I hope it's okay.

If you try to run $ git svn branch foo in a project using a svn+ssh url, you get the following error log:

Copying svn+ssh://example.org/svn/project/trunk at r1000 to svn+ssh://me@example.org/svn/project/branches/foo... Trying to use an unsupported feature: Source and dest appear not to be in the same repository (src: 'svn+ssh://example.org/svn/project/trunk'; dst: 'svn+ssh://me@example.org/svn/project/branches/foo') at /home/florian/libexec/git-core/git-svn line 722

It fails as the username is missing in the source url. If you modify the git-svn script and add the username it works. The bug can be reproduced with git-svn version 1.6.5.7 (svn 1.5.1).

Best regards, Florian

Eric Wong· Dec 23, 2009, 07:25 UTC · re: Florian Köberle · lore

Re: [BUG REPORT] git-svn fails to create branches if ssh+svn gets used as protocol.

Florian Köberle <florian@fkoeberle.de> wrote:
> Hello
> 
> I haven't seen a link to a bug tracker so I am sending this bug report
> to the mailing list, I hope it's okay.
Hi Florian,
The mailing list is the bug tracker here :)
Show 14 quoted lines
> If you try to run
> $ git svn branch foo
> in a project using a svn+ssh url, you get the following error log:
> 
> Copying svn+ssh://example.org/svn/project/trunk at r1000 to
> svn+ssh://me@example.org/svn/project/branches/foo...
> Trying to use an unsupported feature: Source and dest appear not to be
> in the same repository (src: 'svn+ssh://example.org/svn/project/trunk';
> dst: 'svn+ssh://me@example.org/svn/project/branches/foo') at
> /home/florian/libexec/git-core/git-svn line 722
> 
> It fails as the username is missing in the source url. If you modify the
> git-svn script and add the username it works. The bug can be reproduced
> with git-svn version 1.6.5.7 (svn 1.5.1).
Thanks for the info, the following patch should help.

I rarely get around to testing against svn+ssh servers myself (and they don't appear too common compared to http/https).

Let us know how it goes, thanks!
From b2bc7e330209659c20d02ee0ba3785f9f59fd0b2 Mon Sep 17 00:00:00 2001
From: Eric Wong <normalperson@yhbt.net>
Date: Tue, 22 Dec 2009 22:40:18 -0800
Subject: [PATCH] git svn: branch/tag commands detect username in URLs
Signed-off-by: Eric Wong <normalperson@yhbt.net>
---
 git-svn.perl |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/git-svn.perl b/git-svn.perl
index dba0d12..650c9e5 100755
--- a/git-svn.perl
+++ b/git-svn.perl
@@ -663,7 +663,8 @@ sub cmd_branch {
 	}
 	$head ||= 'HEAD';
 
-	my ($src, $rev, undef, $gs) = working_head_info($head);
+	my (undef, $rev, undef, $gs) = working_head_info($head);
+	my $src = $gs->full_url;
 
 	my $remote = Git::SVN::read_all_remotes()->{$gs->{repo_id}};
 	my $allglobs = $remote->{ $_tag ? 'tags' : 'branches' };
-- 
Eric Wong
Florian Köberle· Dec 23, 2009, 19:26 UTC · re: Eric Wong · lore

Re: [BUG REPORT] git-svn fails to create branches if ssh+svn gets used as protocol.

Hello Eric,

your patch works great. I created successfully a branch on a svn+ssh:// repository using the patched git-svn.

Thank you for the patch and the fast reply. I hope the patch find it's way into the next release.

Best regards, Florian

Eric Wong wrote:
Show 61 quoted lines
> Florian Köberle <florian@fkoeberle.de> wrote:
>   
>> Hello
>>
>> I haven't seen a link to a bug tracker so I am sending this bug report
>> to the mailing list, I hope it's okay.
>>     
>
> Hi Florian,
>
> The mailing list is the bug tracker here :)
>
>   
>> If you try to run
>> $ git svn branch foo
>> in a project using a svn+ssh url, you get the following error log:
>>
>> Copying svn+ssh://example.org/svn/project/trunk at r1000 to
>> svn+ssh://me@example.org/svn/project/branches/foo...
>> Trying to use an unsupported feature: Source and dest appear not to be
>> in the same repository (src: 'svn+ssh://example.org/svn/project/trunk';
>> dst: 'svn+ssh://me@example.org/svn/project/branches/foo') at
>> /home/florian/libexec/git-core/git-svn line 722
>>
>> It fails as the username is missing in the source url. If you modify the
>> git-svn script and add the username it works. The bug can be reproduced
>> with git-svn version 1.6.5.7 (svn 1.5.1).
>>     
>
> Thanks for the info, the following patch should help.
>
> I rarely get around to testing against svn+ssh servers myself
> (and they don't appear too common compared to http/https).
>
> Let us know how it goes, thanks!
>
> From b2bc7e330209659c20d02ee0ba3785f9f59fd0b2 Mon Sep 17 00:00:00 2001
> From: Eric Wong <normalperson@yhbt.net>
> Date: Tue, 22 Dec 2009 22:40:18 -0800
> Subject: [PATCH] git svn: branch/tag commands detect username in URLs
>
> Signed-off-by: Eric Wong <normalperson@yhbt.net>
> ---
>  git-svn.perl |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
>
> diff --git a/git-svn.perl b/git-svn.perl
> index dba0d12..650c9e5 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -663,7 +663,8 @@ sub cmd_branch {
>  	}
>  	$head ||= 'HEAD';
>  
> -	my ($src, $rev, undef, $gs) = working_head_info($head);
> +	my (undef, $rev, undef, $gs) = working_head_info($head);
> +	my $src = $gs->full_url;
>  
>  	my $remote = Git::SVN::read_all_remotes()->{$gs->{repo_id}};
>  	my $allglobs = $remote->{ $_tag ? 'tags' : 'branches' };
>   
Eric Wong· Dec 23, 2009, 20:03 UTC · re: Florian Köberle · lore

Re: [BUG REPORT] git-svn fails to create branches if ssh+svn gets used as protocol.

Florian Köberle <florian@fkoeberle.de> wrote:
Show 7 quoted lines
> Hello Eric,
> 
> your patch works great. I created successfully a branch on a svn+ssh://
> repository using the patched git-svn.
> 
> Thank you for the patch and the fast reply. I hope the patch find it's
> way into the next release.
Hi Florian, thanks for the report and testing the fix.

I've just pushed the that commit and Robert's test for Junio to pull at git://git.bogomips.org/git-svn

Eric Wong (1):
      git svn: branch/tag commands detect username in URLs
Robert Zeh (1):
      git svn: add test for a git svn gc followed by a git svn mkdirs
-- 
Eric Wong

← back to recent threads