2010-11-24 2 views
0

나는 SVN/CVS를 내 코드가 저장된 장소와 같이 오랫동안 사용했다. 하지만 지금은 "할 수있는 최선의 방법"이 필요한 시점에 이르렀습니다.여러 분기와 트렁크의 특정 변경 사항을 병합하는 가장 좋은 방법은 무엇입니까?

우리는 여러 가지 가지가 있습니다. 예를 들어
:

  • Release1 (제공),
  • Release2
  • 이 (완료되지, 새로운 기능을 포함)는
  • Fix1 (Release1에 대한 버그 수정 사항을 포함하고 고객 테스트 후 배송됩니다)
  • Fix2/trunk (trunk은 현재 개발 상태이며 Fix2입니다.)

이제 우리는 내 문제에 봉착합니다.

Release 2Fix1 또는 Fix2 전에 제공하고, 내가 지금 Release1에 대한 Hotfix이있는 경우 내가 말할 수 없습니다. 단 몇 파일이지만 긴급했습니다.

지금 모든 지점에서 변경 사항을 얻는 가장 좋은 방법은 무엇입니까?
자동 병합은 지점 별 차이점을 병합합니다. 손으로 병합하는 가장 좋은 방법은 무엇입니까?
다음과 같은 방법이 있습니다. ID가 "abc"인 변경 사항을 표시하고 모든 분기에서 변경 사항 만 병합한다고 말하면 abc입니다.

btw. 나는 파괴자와 이클립스를 사용하고있다. 아마도 일식 밖의 도구가 더 좋을 것입니다!?

+0

어쩌면 http://stackoverflow.com/questions/1645409/svn-how-to-apply-change-made-in-trunk-to-all-branches가 도움을 줄 수 있습니다. – VonC

+0

한 지점에서 다른 지점으로 병합하지 않을 수 있습니다. 문제. 문제는 일부 변경 사항 만 병합하기를 원한다는 것입니다. 다음과 같은 사항을 고려하십시오. 소프트웨어의 이전 버전이 있고 2 명의 다른 고객을 위해 2 개의 분기로 분기했습니다. 이제는 이전 버전에 대한 수정 작업을 수행합니다 (customer3에서 사용하기 때문에). 분기에 다른 기능이 있기 때문에 새 분기 만 병합하려고합니다.영어로 설명하기가 어렵습니다. D – lrxw

답변

0

Eclipse 용 Subclipse 플러그인을 사용합니다. svn 명령 줄에서도이 작업을 수행 할 수 있습니다. 수정본이 단일 개정 번호로 분리 된 경우 해당 개정 본만을 트렁크 (또는 다른 분기)에 병합 할 수 있습니다.

  • BRANCH1 (개정 103) -hotfix
  • 트렁크 (개정 100) Subclipse를 사용

, 당신은 바로 파일을 다음 "팀"을 선택 클릭 할 수 있습니다 -> "병합합니다." "Revision range Merge"또는 "두 개의 다른 트리 합치기"옵션을 선택한 다음 대상 트리에 병합 할 소스 url과 개정판을 제공하십시오. 명령 줄에서

... 현재 작업 디렉토리 트렁크 것을 제공 :

svn merge -r 103:103 http://svn/branches/branch1 

당신은 아마 여러 가지에 병합 할 수 없습니다 당신이 병합 프로세스에주의를 원하기 때문에 그것은 아마도 더 나은 .

+0

아, 커밋보다 병합 결과를 확인해야합니다. 또한 Subclipse를 사용하면 실제 병합이 완료되기 전에 병합 프로세스의 시뮬레이션 결과를 볼 수 있습니다. – blissfool

관련 문제