2013-03-13 20 views
30

Próbuję użyć git svn do sklonowania repozytorium SVN do Git.Git Svn - Znaleziono możliwy punkt oddziału

uruchomić następujące polecenie:

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

I pojawia się następujący błąd:

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 ''

wersja git to:

1.8.1.msysgit.1

+0

Tylko wskazówka: komunikat "możliwy punkt rozgałęzienia" jest normalny i nie zawiera błędu. – eckes

+0

Ok ... Ale mój folder repo nie zawiera gałęzi ani znaczników ... Jedyną rzeczą tam jest .git folder – Alex

+0

jest ** no ** tag 'https://svn.mycompany.com/ Projekty/MyProject/tags/11.1.9.33334'? Powinieneś o tym wspomnieć ... – eckes

Odpowiedz

62

Mój problem polegał na tym, że z powodu tak dużego SVN (pliki i logi), że ciągle się zawiesza w niektórych punktach i kiedy ponownie uruchomiłem utworzyło wiele linii gałęzi i znaczników w moim pliku .git/config.

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

po prostu usuwa zduplikowane wpisy z nich i ponownie z moim poleceniem

git svn fetch 
+5

Miałem ten sam problem, ale z [svn2git] (https://github.com/nirvdrum/svn2git) , Usunąłem wszystkie wpisy gałęzi i tagów, ponieważ svn2git dodał je po "wznowieniu". Dzięki za wskazówkę. –

+5

Pracowałem dla mnie. Wróciłem do "git svn fetch" – Wolfgang

+1

. Po usunięciu duplikatów pracowałam w pliku .git/config. Dziękuję Ci. – Koti

0

Miałem ten sam błąd i go rozwiązać przez uaktualnienie do git version 2.6.2.windows.1

0

sam błąd. Konwertuję swoje repozytorium SVN na Gita.

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

v1, adres bagażnik jest źle ustawione przez pomyłkę do samo jak korzeń repozytorium

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 prac: poprawione ścieżki (i stosując względne zamiast bezwzględne, aby linia krótszy)

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

Zgodnie z sugestiami innych osób, otworzyłem plik konfiguracyjny (C: \ code \ Git_myproject.git \ config), a pierwsza wersja (zepsuta) wyglądała następująco. Pobieranie jest prawdopodobnie błędem w porównaniu z v2 (gałęzie i tagi są również duplikowane, niektórzy twierdzą, że może to powodować problemy).

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

i 2. wersja (pracy) było:

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

Patrząc na svn.pm, widzę, że jesteśmy w find_parent_branch() który wysyła komunikat "Found possible branch point". Następnie wywołuje other_gs($new_url, $url, $branch_from, $r, $self->{ref_id}); która sama nazywa: Git::SVN->find_by_url($new_url, $url, $branch_from); który wzywa: resolve_local_globs($u, $fetch, $globspec); i resolve_local_globs jest, gdy zostanie zgłoszony błąd na linii 100/101:

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

popełniłem błąd w moim wierszu poleceń na pewno , naprawienie mojej ścieżki bagażowej usunęło błąd. Nigdy nie usunąłem zduplikowanych wierszy w pliku konfiguracyjnym, zostały one automatycznie dostosowane po ponownym uruchomieniu polecenia.