0

우리는 SVN 1.6을 사용합니다. 분기 간 코드 병합을 수행하기를 원하며 우리는 딜레마 상황에 처하게됩니다.SVN 여러 분기 간의 코드 병합

지점 A는 지점에서 생성 된 브랜치
지점 B에
두 가지에 코드 변경 밥상과 B
지점 지점 B에 병합 동기 코드를 코드 변경을
밥상 존재
잠시 후
브랜치 A에서 생성 된 브랜치 C
브랜치 A는 브랜치 B와 머지를 계속 동기화합니다 (잠시 동안)
분기 C에서 코드를 변경하는 사람들더 이상 CI를
지점 C 동기 코드 지점 B에 후 C
B와 지점에서 코드 변경을
밥상을 병합 지점 B에서 코드 변경을
밥상을 16,사람들은 지점 A의 코드 변경을 중지하고 지점은 "동결"

지금 딜레마 시간의 일부 오랜 기간 : 우리는 지점 B를 병합하는 등 분기로 C

지점 B는 지점 A로부터 때문에 우리는 적용 할 수 없습니다 - 공통 조상을 공유하지 않기 때문에 B에서 C로 코드를 병합하는 옵션을 다시 정의하십시오.

--reintegrate 옵션없이 병합하는 것이 가장 위험한 방법은 " (B에서 ​​C)의 "이중 병합/중복 코드"를 C 분기점으로?

+0

에 직접에서 마지막 변경을 것입니다. Tortoise는 이러한 옵션을 제공하지만, SVN 1.6이 이것을 처리 할 수 ​​있는지 확실하지 않습니다. – Micha

답변

0

간단한 구조로 브랜치 구조를 시각화하십시오. 문제의 나의 이해는 다음과 같습니다

   C ---- C ---- C ----- C 
      /  \  \ 
A --- A ---- A --- A \  \  ??? 
\  \  \  \ \  \ 
    B --- B ---- B --- B -- B ---- B ---- B 

그건 당신이 3 단계/단계 3 시리즈에서 할 수있는 옵션이없는 경우 I는 A에서 C와 B를 통합하는 것입니다 :

  1. 병합 모든 B에서 C로 변경되었지만 A에서 병합 된 변경은 수행하지 않습니다. A에서 B (C가 아닌)에서 마지막으로 병합 할 때까지 수행하십시오.
  2. 이 마지막 병합을 A에서 B로 병합합니다.
  3. 병합 B에서 남은 변경 사항 (A와 마지막 병합 이후) m C

구조가 명확하지 않습니다. 이

   C ---- C ---- C ----- C 
      /  \  \ 
A --- A ---- A --- A \  \  ??? 
\  \   \ \  \ 
    B --- B ---- B --- B -- B ---- B ---- B 

이 될 것입니다 경우 당신이 사용하는 "수정의 범위를 병합"할 수 C.

+0

안녕하세요, BHF, 응답 해 주셔서 감사합니다. 귀하의 다이어그램 내 텍스트 설명에서 올바른 보인다. 따라서 솔루션에서 --reintegrate 옵션을 사용하지 않고 위의 3 단계 중 하나에 따라 한 번에 하나씩 rev 번호를 병합해야합니다. 그게 우리의 올바른 이해인가? – chz

+0

[revision의 범위를 병합] (http://svnbook.red-bean.com/en/1.6/svn.branchmerge.advanced.html#svn.branchmerge) 단계를 수행 할 수 있습니다.advanced.advancedsyntax) 또는 개별 변경 세트의 [cherrypicking] (http://svnbook.red-bean.com/en/1.6/svn.branchmerge.advanced.html#svn.branchmerge.cherrypicking)을 참조하십시오. 2 단계를 시작하기 전에 1 단계를 수행하면 작업을 두 번 수행 할 위험이 줄어 듭니다. 잘못 시도하면 작업 복사본을 되돌리고 다시 시작하십시오. 행운을 빕니다. – BHF