Code

git-svn: fix mismatched src/dst errors for branch/tag
authorIgor Mironov <igor.a.mironov@gmail.com>
Mon, 11 Jan 2010 16:20:43 +0000 (03:20 +1100)
committerEric Wong <normalperson@yhbt.net>
Sat, 23 Jan 2010 11:23:03 +0000 (03:23 -0800)
This fixes the following issue:

$ git svn branch -t --username=svnuser \
  --commit-url=https://myproj.domain.com/svn mytag
Copying http://myproj.domain.com/svn/trunk at r26 to
https://myproj.domain.com/svn/tags/mytag...

Trying to use an unsupported feature: Source and dest appear not to be
in the same repository (src: 'http://myproj.domain.com/svn/trunk';
dst: 'https://myproj.domain.com/svn/tags/mytag')

[ew: shortened subject]

Signed-off-by: Igor Mironov <igor.a.mironov@gmail.com>
Acked-by: Eric Wong <normalperson@yhbt.net>
git-svn.perl

index e0773eff4ea3fa297925795e28e9b0dfdd0e35b6..e05bf366cc1946375be5d9dc91de4f38a0b31540 100755 (executable)
@@ -710,6 +710,10 @@ sub cmd_branch {
        my ($lft, $rgt) = @{ $glob->{path} }{qw/left right/};
        my $dst = join '/', $remote->{url}, $lft, $branch_name, ($rgt || ());
 
+       if ($dst =~ /^https:/ && $src =~ /^http:/) {
+               $src=~s/^http:/https:/;
+       }
+
        my $ctx = SVN::Client->new(
                auth    => Git::SVN::Ra::_auth_providers(),
                log_msg => sub {