2010-06-09 1 views
28

svn2git을 사용하여 svn에서 git로 저장소를 가져 오려고하는데 지점에 도달하면 실패하는 것처럼 보입니다. 뭐가 문제 야?이 svn2git 오류의 의미는 무엇입니까?

Found possible branch point: https://s.aaa.com/repo/trunk/project => https://s.aaa.com/repo/branches/project-beta1.0, 128 
Use of uninitialized value in substitution (s///) at /opt/local/libexec/git-core/git-svn line 1728. 
Use of uninitialized value in concatenation (.) or string at /opt/local/libexec/git-core/git-svn line 1728. 
refs/remotes/trunk: 'https://s.aaa.com/repo' not found in '' 

Running command: git branch -l --no-color 
* master 
Running command: git branch -r --no-color 
    trunk 
Running command: git checkout trunk 
Note: checking out 'trunk'. 

You are in 'detached HEAD' state. You can look around, make experimental 
changes and commit them, and you can discard any commits you make in this 
state without impacting any branches by performing another checkout. 

If you want to create a new branch to retain commits you create, you may 
do so (now or later) by using -b with the checkout command again. Example: 

    git checkout -b new_branch_name 

HEAD is now at f4e6268... Changing svn repository in cap files 
Running command: git branch -D master 
Deleted branch master (was f4e6268). 
Running command: git checkout -f -b master 
Switched to a new branch 'master' 
Running command: git gc 
Counting objects: 450, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (368/368), done. 
Writing objects: 100% (450/450), done. 
Total 450 (delta 63), reused 450 (delta 63) 
+0

나는 svn과 git의 문제점을 가지고있다. 나는 당신의 문제가 될 수있는 아이디어가 없다.하지만 어쩌면 당신은 재단사와 같은 다른 저장소 변환 도구를 사용해 볼 수있다. http://progetti.arstecnica.it/재단사 /? – Unknown

+0

이 게시물과 매우 유사/동일한 오류 : http://stackoverflow.com/questions/15387812/git-svn-found-possible-branch-point/ –

답변

4

Subversion 저장소에는 표준 트렁크/분기/태그 구조가 없습니다. --branch, --tag, --trunk 옵션을 사용하여 분기 한 위치의 대체 위치를 지정하십시오.

+0

나는 이것을 수행하여 동일한 문제를 해결했습니다. – Pacu

58

.git/config 파일을 열고 svn-remote 섹션 아래에있는 모든 브랜치와 태그 항목을 삭제하고이 오류를 없애기 위해 'git svn clone'명령을 실행해야했습니다. 분명히,이 명령을 여러 번 실행하면 (보통 리비전에서 멈추고 다시 시작), 분기/태그 항목이 재사용되는 대신 구성 파일에 추가되어 오류가 발생합니다.

+1

고마워, 나는 [svn-remote "svn"] 섹션 아래의 모든 것을 삭제했다. 이것은 나를 위해 일했다 .. – kpasgma

+0

예! 그게 효과가! –

+9

모든 것을 지울 필요는 없었습니다.'branches = branches/* : refs/remotes/svn/*'와'tags = tags/* : refs/remotes/svn/tags/*'(keep 하나) –

4

문제를 해결하려면 가져온 원격 지점과 태그를 로컬 지점과 태그로 변환해야합니다. 원본 링크 : http://progit.org/book/ch8-2.html : 스콧 Chacone (PRO GIT)에서

To move the tags to be proper Git tags, run 

$ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/ 
$ rm -Rf .git/refs/remotes/tags 

This takes the references that were remote branches that started with tag/ and makes them real (lightweight) tags. 

Next, move the rest of the references under refs/remotes to be local branches: 

$ cp -Rf .git/refs/remotes/* .git/refs/heads/ 
$ rm -Rf .git/refs/remotes 

이 완벽하게 날 위해 일했습니다.

+0

나를 위해 일했습니다 ... !!!! 그러나 필자의 경우, 실패했을 때 태그가 존재하지 않았기 때문에 "원격"에 대한 변경 만 수행해야했습니다. –

+0

다시 깨진 후, .git/config 파일의 "원격 svn"블록에서 모든 항목을 삭제하면 제대로 작동합니다! –

5

나는 동일한 오류 메시지가 나타나면 instructions git로 일부 svn을 따라 갔다. 내가이 명령을 실행할 때 오류가 발생했습니다 : 오류가 발생한 후 다음과 같이 나는 .git/config에 파일을 편집

git svn clone file:///pathto/repo /pathto/new-git-repo –-no-metadata -A authors.txt -t tags -b branches -T trunk 

:

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

->

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

즉 , "tags"줄과 비슷하게 "braches"줄을 포맷했습니다. 다음 명령을 다시 실행했습니다. 이 프로세스는 원격 브랜치가있는 유효한 git repo를 생성합니다.

+0

그 질문입니까? 답변? 아니면 '우리 정보를 위해서'? – Manuel

+0

그것은 오류를 전달하는 (내 경우에는 프로세스를 추락시키는) 한 가지 방법이며 svn에서 git까지 복제를 완료합니다. – jaolho

2

svn2git가 분기 구성을 올바르게 통과하지 못하는 것 같습니다. 표준 레이아웃을 가지고 있지만 오류가 발생했습니다. 레이아웃의 기본값을 다시 전달하는 것으로 수정했습니다.

$ svn2git http://repos --branches branches --tags tags --trunk trunk 

그런 다음 예상대로 작동했습니다.