2013-07-08 2 views
2

트렁크의 새로운 변경 사항으로 업데이트하려는 SVN의 브랜치가 있습니다. 또한이 지점에서 로컬 변경 사항을 포함하는 파일이 있습니다. 나는 이러한 변화의 일부를 아직 저지르고 싶지 않다. 원격 서버의 지점에 트렁크를 병합하는 방법이 있나요트렁크를 로컬 변경 사항이있는 분기로 병합

Error: Cannot merge into a working copy that has local modifications 

, 그래서 난 그냥 할 수 있습니다

나는이 지점에 트렁크에서 변경 내용을 병합하려고하면, 그것은 나에게 오류를 제공 이후에 분기를 정상적으로 업데이트 하시겠습니까?

답변

6

그것은이다 추천 당신이 병합 작업 디렉토리의 깨끗한과 날짜까지 복사본을 사용. --allow-mixed-revisions 매개 변수가 병합도 자리를 차지할 수

$ svn merge --force --allow-mixed-revisions $repo_url 

:이 추기경의 규칙을 깨고 에 자신을 촬영하려는 경우

그러나, Subversion은 당신에게 수단 총알을 제공 작업 사본에 혼합 된 개정이있는 경우. --force 매개 변수를 사용하면 로컬 변경 사항이 있어도 병합 할 수 있습니다.

실제로는 --force을 사용하는 것이 좋은 생각 일 수 있지만, 어떤 이유로 든 --allow-mixed-revisions을 생각할 수 없습니다.

+0

불행히도 --force가 --reintegrate와 함께 작동하지 않습니다. –

+0

'--reintegrate' 플래그는 병합이 작동하는 방식을 완전히 바꿉니다. 병합은 3 방향 병합에서 단순한 양방향 병합으로 변경됩니다. 주된 목적은 작업중인 _development stream_을 병합하려는 _development stream_과 일치 시키도록 강제하는 것입니다. 혼합 리비전은 의미가 없으므로 사용할 수 없으며 깨끗한 체크 아웃을해야합니다. 새 버전의 Subversion 클라이언트는 병합이 _reintegration 병합인지 여부를 확인하고'--reintegrate' 플래그의 필요성을 없애려고합니다. –

4

아니요. 작업 복사본에서 병합 프로세스를 거쳐 잠재적 인 충돌을 해결하고 커밋해야합니다.

하지만 작업중인 복사본은 현재 작업중인 복사본과 다른 작업 복사본 일 수 있습니다. 새 디렉터리로 분기를 새로 체크 아웃 한 다음이 새 디렉터리에서 병합하고 커밋하십시오.

+0

이것은 나를 위해 일했습니다. 깨끗한 체크 아웃으로 병합하고 커밋 한 다음 로컬 변경 사항이 적용된 지점에서 업데이트를 실행합니다. – tim654321

관련 문제