2011-03-07 7 views
2

일반적인 trunk/tags/branches 레이아웃에 반드시 위치하지 않는 분기가있는 svn 저장소를 고려하십시오. 나는 git-svn이 보드에있는 두 개의 브랜치를 가져오고, 다른 것들은 필요로하는 것을 가져 오도록 설득하여, svn 병합으로 우리를 괴롭 히고있는 다양한 레벨의 지옥을 피하기 위해 git을 병합 도구로 사용할 수 있도록하고 싶다. 가지가 모두 한 곳에 있다면, --branches가 있지만, 그렇지 않은 경우 길은 있습니까?git svn을 svn 병합 병합으로 버팀목으로 사용

답변

3

마십시오 git svn init ROOT_URL 다음에 가서 편집하여 .git/config 추가 fetch 라인을 추가 :

[svn-remote "svn"] 
    url = https://svn.mcs.anl.gov/repos/mpi 
    fetch = mpich2/trunk:refs/remotes/trunk 
    fetch = mpich2/branches/dev/threads:refs/remotes/threads 
    fetch = mpich2/branches/dev/knem:refs/remotes/knem 
    fetch = mpich2/branches/release/MPICH2_1_0_8:refs/remotes/mpich2-1.0.8 

그런 git fetch을 당신은 명시 적으로 설정 파일에 나열된 모든 지점을 얻어야한다.

실제로 외부에서 git-svn을 통해 병합을 수행하고 싶지는 않을 수 있습니다. Git은 svn:mergeinfo 속성을 유지하지 않으므로 네이티브 SVN 기반 병합 워크 플로가 거의 불가능합니다. 이미 SVN repo에 대해 커밋 된 코드를 cherry-picking 또는 병합하여 git-svn을 혼동 할 수도 있습니다. 왜냐하면 커밋 메시지에서 git-svn-id: "breadcrumbs"를 검색하여 어떤 SVN 경로를 사용해야하는지 파악하기 때문입니다 git svn dcommit. 이에 대한 추가 정보는 git-svn 맨 페이지의 CAVEATS 섹션을 참조하십시오.

FWIW, posted about this in longer form on my own site도 있습니다.

관련 문제