2012-05-08 2 views
0

SVN에서 저는 두 개의 브랜치 1.0과 2.0을 가지고 있습니다. 1.0에서 문제를 해결 한 경우 2.0과 그 반대로 병합 할 수 있습니까? 나는 1.0 분기에 수정을하며 새 파일 A (레브 X)을 생성SVN 형제 사이의 병합

  1. :

    다음과 같은 시나리오를 생각해보십시오.

  2. 1.0에서 2.0 (rev X + 1)의 수정 사항으로 일반 병합을 수행합니다.
  3. 그런 다음 2.0 분기에서 수정하고 A (rev Y)를 수정합니다.
  4. 다시 1.0으로 병합하면 병합 충돌이 발생합니다!

나는 항상 1.0 브랜치에서 수정이 이루어 지거나 1.0 브랜치에서 X + 1 리비젼을 수동으로 차단할 수 있다고 생각한다. 이 둘은 모두 이상적이지 않으며 형제 자매를 다루는 더 좋은 방법이 있는지 궁금합니다.

+0

우리는 자주하지는 않지만, 언제든지 수동 블록 (예 :'--record-only')을 사용합니다. –

답변

1

'가장 좋은 방법은 지점의 목적에 따라 다르게됩니다.

예를 들어, 브랜치 1.0이 버그 수정 용이고 브랜치 2.0이 테스트 용이면 모든 수정을 먼저 수행 한 다음 2.0으로 푸시하는 것이 좋습니다.

서로 다른 프로젝트이고 어떤 기능이 브랜치간에 병합되는지 체 크픽으로 보려면 트렁크를 중앙 집중식 지점으로 사용할 수 있습니다.

두 가지 분기가 모두 동일한 파일과 변경 사항을 가지며 둘 다 권위있는 경우 두 가지가 모두 필요합니까?

궁극적으로 두 지점에서 동일한 파일을 변경하는 경우 갈등이 발생합니다. 문제를 해결할 때마다 일상적인 문제가 발생하지 않습니다.

+0

분기는 동일한 제품의 다른 릴리스입니다. 우리는 1.0에서 계속 고객을 지원하고 패치를 릴리스해야하며 동시에 2.0에서 새로운 개발을해야합니다. 1.0 브랜치를 관리하는 엔지니어는 종종 버그를 발견하고 수정하며 2.0 브랜치에 동일한 버그가 적용됩니다. 새 2.0 분기를 개발하는 엔지니어는 1.0 릴리스에 영향을 줄 수있는 버그를 발견하고 이러한 변경 사항을 다시 푸시하려고합니다. – Pace

+0

더 많은 논의가 있은 후에 트렁크를 중앙 집중식 지점으로 사용하는 것이 이상적인 시나리오라고 생각합니다. – Pace