Git Svn - Found possible branch point

2019-02-02 20:59发布

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 branches -t tags --no-metadata https://svn.mycompany.com/Projects/MyProject MyProject

And I get the following error:

Found possible branch point: https://svn.mycompany.com/Projects/MyProject/trunk => https://svn.mycompany.com/Projects/MyProject/tags/11.1.9.33334, 33334

Use of uninitialized value in substitution (s///) at /usr/lib/perl5/site_perl/Git/SVN.pm line 106.

Use of uninitialized value in concatenation (.) or string at /usr/lib/perl5/site_perl/Git/SVN.pm line 106.refs/remotes/MyProject-10.2: 'https://svn.mycompany.com/Projects' not found in ''

Version of git is:

1.8.1.msysgit.1

标签: git git-svn
3条回答
可以哭但决不认输i
2楼-- · 2019-02-02 21:08

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
查看更多
叛逆
3楼-- · 2019-02-02 21:21

I had the same error and solved it by upgrading to git version 2.6.2.windows.1

查看更多
Deceive 欺骗
4楼-- · 2019-02-02 21:28

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.

查看更多
登录 后发表回答