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

From: Florian Köberle <[email-masked]>
Date: Wed, 23 Dec 2009 20:26:27 +0100

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:
> Florian Köberle <[email-masked]> 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://[email-masked]/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://[email-masked]/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 <[email-masked]>
> 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 <[email-masked]>
> ---
>  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' };
>