2009-08-18 3 views
1

SVN에서 프로젝트를 움직이고 있습니다. (완전히 git svn의 SVN interop 기능이 필요하지 않습니다.) git svnsvn2git (nirvdrum's fork on github)을 모두 사용해 보았습니다. SVN 그렇게 같았다 :git-svn 또는 svn2git을 사용하여 svn에서 git로 변환 할 때 어떻게 저장소의 기본 경로를 변경하고 분기/태그를 유지할 수 있습니까?

example.com/website/trunk|branches|tags/base/code,

내가 자식으로 가져올 때, 저장소의 루트 디렉토리는 하나 개의 디렉토리, 기본 (안 실제 이름)와 모든 재료가 포함되어 있습니다. 이것은 약간의 합병증을 추가하기 때문에 우리에게 문제가됩니다.

가져 오기 중에 또는 소급 된 미친 역사 변화 권한을 사용하여 저장소의 루트를 기본으로 변경하는 좋은 방법이 있습니까? 그렇지 않으면, 저장소의 루트가 아니어야하고 관련없는 다른 코드를 포함하고있는 디렉토리는 git에있는 저장소의 루트가되어야합니다. 이는 이상한 일입니다. 그리고 어떤 이유에서 SVN에서 그렇지 않습니다 (즉, 저장소의 루트가 기본이고 부모 디렉토리에 svn이 없습니다).

누군가가 쉽게 대답 할 수있는 빠른 질문입니다.

오, 그런데, 내가 가지기를 원하는 지점과 꼬리표를 가지고 있습니다. 그러나 이것들은 다시 base에 뿌리를 내려야합니다. base의 부모 디렉토리가 아닙니다. 꽤 쓸모가 없기 때문에 이러한 것들을 가져올 수 없다면 큰 일이 아니며 팀은 전에는 SVN을 사용하지 않았지만 친절하게 생각할 수 있습니다.

답변

1

svn2git에도 옵션이 있습니다. 찰스 대답의 예제를 사용하여는 다음과 같습니다

svn2git --trunk example.com/website/trunk/base/code \ 
     --tags example.com/website/tags/base/code \ 
     --branches example.com/website/branches/base/code 

[주의해야 :. 나는이 시도하지 않은,하지만 내가 아는 한, svn2git 그냥 git-svn-T|t|b 옵션에 그 변환]

+0

오, 멋지다. 내가 알고 싶었던 것이 거의있다. – Ibrahim

1

당신은 할 수 있어야한다 :

git svn init -Texample.com/website/trunk/base/code -texample.com/website/tags/base/code -bexample.com/website/branches/base/code 

기본 설정을 수락하는 대신 또는 -s|--stdlayout를 사용.

+0

고마워, 그게 내가 기본적으로 찾는거야. 나는 물건을 좀 더 깔끔하게 만들기 때문에 svn2git으로이 작업을 수행 할 수 있는지 여부를 알고 싶다. – Ibrahim

관련 문제