Git Svn - найдена возможная точка ветвления

Я пытаюсь использовать git svn для клонирования репозитория SVN в Git.

Я запускаю следующую команду:

C:\Projects > git svn clone -T trunk -b branches -t tags --no-metadata https://svn.mycompany.com/Projects/MyProject MyProject

И я получаю следующую ошибку:

Найдена возможная точка ветвления: https://svn.mycompany.com/Projects/MyProject/trunk = > https://svn.mycompany.com/Projects/MyProject/tags/11.1.9.33334, 33334

Использование неинициализированного значения в подстановке (s///) в /usr/lib/perl 5/site_perl/ Git/SVN.pm, строка 106.

Использование неинициализированного значения в конкатенации (.) или строке в /usr/lib/perl 5/site_perl/ Git/SVN.pm 106.refs/remotes/MyProject-10.2: 'https://svn.mycompany.com/Projects' не найден в ''

Версия git:

1.8.1.msysgit.1

Ответы

Ответ 1

Моя проблема заключалась в том, что из-за такого большого SVN (файла и журнала), который он сбой в некоторых случаях, и когда я перезапустил его, он создал несколько строк ветвей и тегов в моем файле .git/config.

branches = branches/*:refs/remotes/svn/branches/*
tags = tags/*:refs/remotes/svn/tags/*

Я просто удалил дубликаты записей и перезапустил с помощью моей команды

git svn fetch

Ответ 2

У меня была такая же ошибка, и я решил ее обновить до git version 2.6.2.windows.1

Ответ 3

Те же ошибки. Я конвертирую свой SVN-репозиторий в Git.

git version 2.8.2.windows.1
Windows 8.1 Pro 64bits, running Git For Windows 32bits.

v1, адрес внешней линии ошибочен, по ошибке установлен так же, как корень репозитория:

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 работает: исправлены пути (и использование относительного вместо абсолютного, чтобы сделать линию короче)

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
[...]

Как было предложено другими, я открыл конфигурационный файл (C:\code\Git_myproject.git\config), а первая версия (сломанная) была следующей. Вероятно, выборка - неправильная вещь, сравниваемая с v2 (дубликаты и теги дублируются, некоторые говорят, что это может также вызвать проблемы).

[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/*

а вторая версия (работа):

[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/*

Глядя на svn.pm, я вижу, что мы находимся в find_parent_branch(), который выводит сообщение "Found possible branch point". Затем он вызывает other_gs($new_url, $url, $branch_from, $r, $self->{ref_id}); который сам вызывает: Git::SVN->find_by_url($new_url, $url, $branch_from); который вызывает: resolve_local_globs($u, $fetch, $globspec); и resolve_local_globs, где ошибка вызывается в строке 100/101:

my $u = (::cmt_metadata("$refname"))[0];
$u =~ s!^\Q$url\E(/|$)!! or die

Я ошибся в своей командной строке, и исправление пути к моей магистрали удалило ошибку. Я никогда не удалял повторяющиеся строки в файле конфигурации, они автоматически настраивались при повторном выполнении команды.