문제

나는 트렁크 (a)와 두 개의 가지 (b와 c)가 있습니다. a를 C와 합병하면 A를 B와 병합 한 후 이전 C가 덮어 쓰고 트렁크가 C 변경되지 않습니다.

내가 원하는 것은 병합 후 트렁크에 + b + c입니다.

더 많은 설명을 위해 편집 :

  1. 트렁크에는 "파일 1", "파일 2"및 "파일 3";
  2. 나는 트렁크에서 "Branch 1"로 분기를 만듭니다.
  3. "분기 1"으로 전환하고 버그를 "파일 1"파일로 수정하고 커밋합니다.
  4. 동시에, 다른 사람은 트렁크에서 "Branch 2"로 분기를 만듭니다.
  5. 이 사람은 다른 버그를 "파일 2"및 "파일 3"파일로 수정하고 커밋합니다.
  6. "Branch 2"는 게시를 위해 승인 된 다음 "Branch 2"를 "트렁크"(OK)로 병합합니다.
  7. 다음날 "Branch 1"이 승인 된 다음 "Branch 1"을 "트렁크"로 병합하고 "트렁크"는 "Branch 2"에서 변경 사항을 잃습니다.
도움이 되었습니까?

해결책

  1. 작업 사본을 만드십시오 trunk
  2. svn merge -r W:X svn://branchA workingCopy
  3. svn merge -r Y:Z svn://branchB workingCopy

나는 이것이 당신이 원하는 것을 줄 것이라고 생각합니다. 이것은 트렁크와 어느 지점에서의 변경 사항입니다. 그러나 갈등을 다루어야합니다.

다른 팁

Subversion 1.5 이상을 사용하고 있다고 가정하면 지점을 트렁크로 다시 "재 통합"하고 싶다고 생각합니다. http://blog.red-bean.com/sussman/?p=92

당신의 용어는 명확하지 않습니다. 당신이 "b와 병합"이라고 말할 때 그것은 당신이 a를 b 또는 b로 병합한다는 것을 의미합니까? 지점을 만들기 위해 무엇을했는지 정확히 설명 할 수 있고 어떻게 합병을 시도했는지 설명 할 수 있습니까? 또한 병합하려면 사용중인 SVN 버전이 중요합니다.

신중하게 읽어 보는 것이 좋습니다 분기 및 병합에 관한 장 SVN 책에서.

기본적으로, 기능 분기가있는 경우 (이것은 당신이 가지고있는 것처럼 보이는 것), 당신은 분기를 반복적으로 병합합니다. 그런 다음 SVN은 귀하가 병합 한 수정 사항을 기록하고 다시 합병하지 않을 것입니다. 당신이 당신의 지점을 끝내면, 당신은 그것을 트렁크로 통합하여 그것을 무시합니다.

이 모든 것은 디스크, 한 번에 하나의 분기 씩 이루어지며 각 지점 후에 잠재적 충돌을 해결하고 각 단계를 확인합니다. (어떤 이유로 든 한 번의 체크인에서 트렁크에 변경 사항을 적용 해야하는 경우, 지점을 트렁크에서 신선한 지점으로 병합 한 다음 해당 분기를 트렁크로 병합 할 수 있습니다.)

리포지토리가 아닌 작업 공간에 합병을 적용하려고합니다. 또는 SVN보다 훨씬 우수한 방식으로 지점을 다루는 CV를 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top