2009-11-17 1 views
2

나는 웹을 샅샅이 뒤졌고 git-svn 및 브랜치로 작업하는 것에 대해 많은 것을 발견했지만 내 상황에 맞는 것은 아무것도 없다.git-svn과 큰 프로젝트

저는 커다란 프로젝트를 진행하고 있으며 일주일 내내 여러 지점에서 근무하고 있습니다. git 브랜치를 다루는 표준적인 방법은 여기서는 나에게 도움이되지 않을 것이다. 단지 코드의 크기 때문이다. 처음부터 컴파일하는 데 약 한 시간이 걸리므로 분기간에 앞뒤로 전환 할 수는 없습니다. git-svn을 사용하여 로컬 브랜치를 사용할 수 있습니다. svn 브랜치는 특정 장소에서 공통 코드를 사용하여 별도의 프로젝트로 간주 될 수 있습니다.

내가 할 수 있기를 원하는 것은 하나의 svn repo에서 다른 git-svn을 사용하여 변경 사항을 병합하는 것이지만 Google 또는 git-svn docs에서 수행하는 방법을 찾지 못했습니다. 나는 svn에서 별도의 svn 체크 아웃을 유지함으로써 각 브랜치에 대한 자신의 디렉토리를 처리하고 merge 명령을 사용하여 변경 사항을 가져온다. git-svn을 사용하여 비슷한 일을 할 수있을 것으로 기대했지만 다른 svn 분기에서 변경 사항을 가져 오는 방법을 찾지 못했습니다. 이것을 할 수있는 방법이 있습니까?

+0

당신이 당신의 이점을 위해 브랜칭을 사용하지 못하게하는 컴파일 작업을하고 있다면, 일반적으로 그들을 추적해서는 안됩니다. – Kzqai

답변

2

Mercurial과 유사한 접근법을 사용할 수 있습니다. 저장소 당 하나의 분기.

각 SVN 브랜치는 git-svn (하나의 브랜치 만 임포트/익스포트하도록 조정)을 통해 git 저장소에 살 것입니다.
Git 저장소 사이에서 다른 git repo (별칭, 다른 SVNbranch)의 지점을 추적하고 주어진 git repo (다른 SVNbranch)로 가져 와서 현재 마스터 분기에 병합하여 git-svn dcommit으로 분기하기 전에 다시 분기 할 수 있습니다. 관련 svn 분기.

+0

이것은 내가 본 최고의 충고이지만 엄청난 번거 로움없이 작동시킬 수는 없습니다. 나는 뭔가를 놓친 것일 수도 있고, 나는 자식에게는 새로운 사람이다. 지금은 svn diff xxxxxxx -c xxx를 사용하려고합니다. 나는 그것을 더 잘 이해할 때까지 패치를한다. –

0

git-svn repo의 로컬 공유 클론을 가질 수 있습니다. 그러나 둘 다 별도로 업데이트해야합니다. 더 나은 접근 방법은 git-new-workdir을 사용하는 것입니다. 그러면 별도의 색인과 공유 된 repo를 사용하여 새로운 작업 디렉토리가 만들어집니다. 따라서 원본 repo에서 새로운 커밋을 업데이트/가져 오면 다른 작업 dir에서도 볼 수 있습니다. 따라서 각 지점마다 별도의 작업 디렉토리를 사용할 수 있습니다.