2014-10-01 4 views
0
내가 SVN 병합과 문제에 직면하고있다

, 여기에 시나리오svn - 수동으로 두 브랜치에서 생성 된 디렉토리를 병합하는 방법?

트렁크입니다
BRANCH1
브랜치

'ABC'가 simulataneously Branch1Branch2에서 만든 새 폴더, 모두의 코드베이스 Branch1가 출시 될 때까지 업데이트되었습니다. 추가 코드는 Branch2에서 작성되었습니다.
이제 Branch1이 Trunk로 병합되었을 때 부드럽게 돌아 왔습니다.
트렁크가 Branch2에 병합되었을 때 예상대로 트리 충돌이있었습니다.

그러나 지금 어떻게 진행해야할지 모르겠습니다. 미래의 병합이 트리 충돌을 일으키지 않도록 디렉터리를 올바르게 병합 할뿐만 아니라 Branch2에서 딱딱한 변화를 유지하려고합니다.

아이디어가 있으십니까? 그런 문제에 직면 한 사람이 있습니까? 어떤 결의안?


어떤 대답 질문 질문 : Q 왜 당신은 동시에 두 가지를 창조 하셨 는가?
A : 25 명의 개발자가있는 팀에서 svn 작업을 병합 중입니다. 2 명의 개발자가 이것을 만들었습니다.

Q 그리고 두 지점 모두에서이 abc 디렉토리를 만들었습니까?
A : 사용중인 동일한 프로젝트입니다. 하나는 시작 단계에 있으며, 다른 부분은 아직 발표되지 않은 상태입니다.

Q abc는 프로젝트입니까, 아니면 기존 프로젝트의 새 디렉토리입니까?
A : 새로운 프로젝트입니다.

트렁크에 abc 디렉토리가 있습니까?
A : 아니요

답변

0

에 하위 트리 /trunk/abc를 병합하고 /Branch2/abc는 두 개의 완전히 분리 된 디렉토리입니다. 두 사람 사이에 공통적 인 역사는 없습니다. 다음 번에는 svn cp을 사용해야하므로 Subversion에서 관련성이 있음을 알 수 있습니다.

--ignore-ancestory 태그를 시도 할 수는 있지만 3 방향 병합 대신 양방향 병합을 수행합니다. 즉, /Branch2/Branch1에 병합하면 에있는 abc 디렉토리는 /Branch2에 있던 것입니다.

왜 두 개의 분기를 동시에 만들었습니까? 그리고 두 지점 모두 왜이 abc 디렉토리를 만들었습니까?abc이 프로젝트입니까 아니면 기존 프로젝트의 새 디렉토리입니까? 그 abc 디렉토리 트렁크에 있었나요?

CM 사례를 검토해야 할 수도 있습니다. 불행히도, 더 이상의 정보가 없으면보다 구체적인 조언을 드릴 수는 없습니다.

+0

업데이트 된 게시물에서 질문에 대한 답변. 한 지점에서 abc 프로젝트를 열심히 삭제 한 다음 병합을 진행할 계획입니다. 좋은 생각이라고 생각하세요? – mtk

+0

예. 가지 중 하나를 제거하십시오. 같은 이름의 완전히 다른 프로젝트입니다. 해당 분기를 삭제하십시오. 여전히 필요한 경우 해당 분기를 다른 분기로 복사하십시오. 나는 그 프로젝트를 위해 지부를 만들기 전에'/ trunk'에 항상 새로운 프로젝트를 만드는 방침으로 삼을 것입니다. 그런 다음'svn cp'를 사용하여 분기를 만듭니다. 이렇게하면 단일 지점 문제에서 두 프로젝트를 만드는 것을 막을 수 있습니다. –

0

분명히 두 소스에서 동일한 디렉토리 이름을 병합하면 트리 충돌이 발생합니다. 분기 1을 병합 한 다음 분기 2의 디렉토리에 대한 후속 변경 사항을 병합하여 편집 할 수 있습니다 (예 : 디렉토리를 만든 개정을 건너 뛰고 내용의 변경 사항 만 병합)

또는 분기 1을 병합하고 커밋 한 후에 변경 사항을 수동으로 복사 할 수 있습니다.

0

브랜치로 루트에서 /trunk을 병합하기 전에 서브 /Branch1/abc/Branch2/abc