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
Я ошибся в своей командной строке, и исправление пути к моей магистрали удалило ошибку. Я никогда не удалял повторяющиеся строки в файле конфигурации, они автоматически настраивались при повторном выполнении команды.