I\'m trying to use git svn
to clone a SVN repo into Git.
I run the following command:
C:\\Projects>git svn clone -T trunk -b bran
Same error. I am converting my SVN repository to Git.
git version 2.8.2.windows.1
Windows 8.1 Pro 64bits, running Git For Windows 32bits.
v1, trunk address is wrong, set by mistake to same as repository root:
C:\Windows\system32>git svn clone https://mycompany.svn.beanstalkapp.com/myproject
--no-metadata -A c:\temp\svn_to_git_users.txt
--trunk=https://mycompany.svn.beanstalkapp.com/myproject
--tags=https://mycompany.svn.beanstalkapp.com/myproject/tags
--branches=https://mycompany.svn.beanstalkapp.com/myproject/branches
c:\code\Git_myproject
[...]
W: +empty_dir: branches/20080918_DBDEPLOY/vendor/src/csharp/MS WCSF Contrib/src/Services
W: +empty_dir: branches/20080918_DBDEPLOY/vendor/src/csharp/RealWorldControls/References
r530 = c276e3b039d8e38759c6fb17443349732552d7a2 (refs/remotes/origin/trunk)
Found possible branch point: https://mycompany.svn.beanstalkapp.com/myproject/trunk => https://mycompany.svn.beanstalkapp.com/myproject/branches/20080918_DBDEPLOY, 529
Use of uninitialized value $u in substitution (s///) at /mingw32/share/perl5/site_perl/Git/SVN.pm line 101.
Use of uninitialized value $u in concatenation (.) or string at /mingw32/share/perl5/site_perl/Git/SVN.pm line 101.
refs/remotes/origin/trunk: 'https://mycompany.svn.beanstalkapp.com/myproject' not found in ''
C:\Windows\system32>
v2 works: corrected the paths (and using relative instead of absolute to make line shorter)
C:\Windows\system32>git svn clone https://mycompany.svn.beanstalkapp.com/myproject
--no-metadata -A c:\temp\svn_to_git_users.txt --trunk=trunk
--tags=tags --branches=branches c:\code\Git_myproject
[...]
r529 = 40442d32486f4ca6f713e659b3785a446bd19de6 (refs/remotes/origin/trunk)
Found possible branch point: https://mycompany.svn.beanstalkapp.com/myproject/trunk => https://mycompany.svn.beanstalkapp.com/myproject/branches/20080918_DBDEPLOY, 529
Found branch parent: (refs/remotes/origin/20080918_DBDEPLOY) 40442d32486f4ca6f713e659b3785a446bd19de6
Following parent with do_switch
Successfully followed parent
r530 = 9fefc1b3a892555e315d55c2024cdf3d3a05010f (refs/remotes/origin/20080918_DBDEPLOY)
A src/database/sds.dbd
[...]
As suggested by others, I opened the config file (C:\code\Git_myproject.git\config) and the first version (broken) was as follow. The fetch is probably the wrong thing comparing with v2 (branches and tags are duplicated too, some people say it might also cause problems).
[svn-remote "svn"]
noMetadata = 1
url = https://mycompany.svn.beanstalkapp.com/myproject
fetch = :refs/remotes/origin/trunk
branches = branches/*:refs/remotes/origin/*
tags = tags/*:refs/remotes/origin/tags/*
branches = branches/*:refs/remotes/origin/*
tags = tags/*:refs/remotes/origin/tags/*
and the 2nd version (working) was:
[svn-remote "svn"]
noMetadata = 1
url = https://mycompany.svn.beanstalkapp.com/myproject
fetch = trunk:refs/remotes/origin/trunk
branches = branches/*:refs/remotes/origin/*
tags = tags/*:refs/remotes/origin/tags/*
Looking at svn.pm, I can see we're in find_parent_branch()
which outputs the message "Found possible branch point"
. It then calls
other_gs($new_url, $url, $branch_from, $r, $self->{ref_id});
which itself calls:
Git::SVN->find_by_url($new_url, $url, $branch_from);
which calls:
resolve_local_globs($u, $fetch, $globspec);
and resolve_local_globs
is where the error is thrown on line 100/101:
my $u = (::cmt_metadata("$refname"))[0];
$u =~ s!^\Q$url\E(/|$)!! or die
I made a mistake in my command line for sure, fixing my trunk path removed the error. I never removed duplicate lines in the config file, they were adjusted automatically when re-running the command.
My problem was that due to such a large SVN (files and log) that it kept crashing at some points and when I restarted it created multiple lines of the branches and tags within my .git/config file.
branches = branches/*:refs/remotes/svn/branches/*
tags = tags/*:refs/remotes/svn/tags/*
I simply removed the duplicate entries of these and restarted with my command
git svn fetch
I had the same error and solved it by upgrading to git version 2.6.2.windows.1