2014-03-27 2 views
3

저는이 문제에 대해 이미 몇 주 동안 연구 중이므로 이미 답변을 받았으면 사과드립니다.SVN을 트렁크에 병합하면 해결 된 파일에 충돌이 발생합니다.

내 주된 문제는 연속 병합을 수행 한 후에 병합됩니다.

나는 내 지점 을 만들 내 /trunk을 가지고 있습니다. 그런 다음 개발자는 해당 지점에서 계속 개발할 것입니다.

나머지 팀원들은 계속해서 /trunk의 사소한 버그 수정을합니다. 분기는 매일 트렁크의 변경 사항으로 업데이트됩니다. 우리는 프로젝트가 끝났을 때 트렁크에 다시 병합 할 차례입니다. 문제가 발생한 곳입니다.

이 특별한 경우에는 오래된 더프 파일이 /trunk에서 제거되었습니다. 이것은 과 성공적으로 병합되었습니다. 따라서 트렁크와 브랜치 모두 이러한 파일을 제거했습니다.

나는 다음과 같은 설정으로 TortoiseSVN을을 사용하여 /trunk에 를 병합로 이동합니다

Imgur Link

갑자기 삭제 충돌의 창고 부하를 작성, 테스트 병합과 실행. 들어오는 삭제로 삭제하십시오. 이것은 또한 추가 된 새 파일, 들어오는 추가로 파일 추가에서 발생합니다.

내 질문은 어떻게 해결할 수 있습니까? SVN이 이것을 자동으로 파악하려고하지 않습니까? 계속해서 트렁크의 병합이 아닌 모든 개정판을 수동으로 선택할 수 있지만 이는 잘못된 것처럼 보입니다.

저는 TortoiseSVN 1.8.4 및 Subversion Edge 4.0.4 (Subversion 1.8.5)에서 실행됩니다. 우리는 버전이없는

\---svn 
    +---branches 
    | +---featureone 
    | \---featuretwo 
    +---production 
    \---trunk 

(이 향후 변경 될 수 있지만) 모든 고객이 동일한 코드베이스를 가지고 :

우리의 SVN 구조는 다음과 같은 일반적이다.

도움이 될 것입니다.

+0

나는 분기하는 트렁크에서 병합을 할 때 비슷한 문제를 했어 다음 트렁크에 지점에서 합병 결합했다. 내 솔루션은 기능 분기를 매일 동기화 된 상태로 유지하고 트렁크로 다시 통합하는 SVN 모범 사례와 달리 한 방향으로 병합하는 것만을 적용하는 것이 었습니다.이 질문을 지키는 것은 대답 – Slav

+0

빠른 업데이트를 보는 것을 좋아합니다. 필자는 CollabNet의 Eclipse SVN 플러그인을 사용하여이 문제를 해결했습니다. 트렁크에 다시 병합 할 때 간단히 "모든 적합한 수정 버전"을 선택하면 SVN은 이전 버전의 트렁크 커밋과 혼동하지 않고 병합해야 할 리비전을 자동으로 파악합니다. 문제는 해결되었습니다. – chandler3224

답변

1

시나리오는 reintegrate 옵션을 사용하여 병합해야하는 것처럼 보입니다. 스크린 샷을 기반으로 전체 트리가 아닌 리비전 세트를 병합하려고합니다. TortoiseSVN을 문서는 말한다 :이 기능이 더 오래 걸릴 것입니다 당신이 트렁크에 변화를 설명 할 필요가

경우에, 당신은 동기화 지점을 유지해야합니다. 이는 주기적으로 트렁크 변경 사항을 분기에 병합하여 분기에 모든 트렁크 변경 사항과 새 기능이 포함되도록하는 것을 의미합니다. 동기화 프로세스에서는 여러 버전의 리비전을 병합합니다. 기능이 완료되면 분기 다시 통합 또는 두 개의 다른 트리 병합을 사용하여 기능을 트렁크에 다시 병합 할 수 있습니다. https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-merge.html

관련 문제