2011-03-28 2 views
5

버전 1.0을 릴리스하고 트렁크 2.0을 계속 개발했습니다. 출시 된 버전과 관련된 버그 수정을 위해 branches/1.0을 만들었습니다. Subversion 병합 추적 기능을 사용하여 분기에서 트렁크로 반복적으로 병합 할 수 있습니까?

  • 트렁크 /이 지점/1.0로 병합 할 수없는 새로운 기능이 포함되어/

    • 2.0 개발 트렁크에 계속, 그래서 트렁크/가지로 지금까지 1.0
    • 병합되지 않습니다

      계획이다

    • 릴리스 된 응용 프로그램에서 버그가 발견되면 branches/1.0으로 수정됩니다. 수정 세트가 프로덕션으로 출시되면 branches/1.0이 tags/1.0.x로 복사되고 branches/1.0은 trunk/
    • 으로 병합됩니다.
    • Subversion 병합 추적이 변경 사항을 추적해야한다는 아이디어가 있습니다. 트렁크 1.0.4 수정 사항을 병합 1.0.3 수정 프로그램이 자동으로 건너 뜁니다

    이 방법에 문제가 있습니까? Subversion 병합 추적이 변경 사항을 추적합니까? 나는 실제로 이것을 시도하지 않았으며, 대부분의 예제는 이것을 다르게 수행한다. (트렁크에서 브랜치로 병합하는데, 대부분의 2.0 개발이 1.0 수정에서 필요하지 않기 때문에 원하지 않는다.) 병합 - 재 통합이 어떻게 든 가능합니까?

  • 답변

    6

    예, 정확하게 설계된 것입니다. 트렁크의 svn:mergeinfo 속성이 1.0의 수정본을 다시 병합했기 때문에 두 번째 병합을 실행해도 해당 수정본을 다시 가져올 수 없습니다.

    사전 병합 추적을 사용하면 병합 한 수정 버전을 추적하고 두 번째 병합을 시도하지 않도록해야합니다. 이제 병합 스크립트가 훨씬 깔끔해졌습니다.

    +0

    이 시나리오에서는 svn merge --reintegrate를 사용하지 않을 것입니다. 맞습니까? – user449236

    +0

    원하지 않으실 필요는 없습니다. svn : mergeinfo는 정상적인 병합 중에도 채워질 것입니다. --reintegrate는 한 번에 전체 브랜치를 수행하기위한 것입니다. 병합 추적은 항목이 이미 병합 된시기를 여전히 알고 있어야하며 충돌로 인해 동일한 항목을 병합하지 못하도록해야합니다. –

    +1

    완료된 기능 분기와 같이 더 이상 개발되지 않을 분기를 병합 할 때는 reintegrate 병합 만 사용해야합니다. 패치에서 트렁크로 수정 사항을 이식 할 때 "개정판 범위 병합"옵션을 사용하십시오. –

    관련 문제