내가 누락되었을 수도 있지만 svn merge를 사용했을 때 제대로 작동하려면 수정 번호를 받아야했습니다. 당신이 개정 (100)에서 분기 (또는 마지막 병합) 경우
그래서, 트렁크는 200에서 현재, 그리고 당신은 분기 작업 디렉토리에 다음, 당신의 지점으로 트렁크 변경 사항을 병합 할 당신이 할 :
svn merge -r 100:200 trunkURL
그런 다음 충돌을 보게 될 것입니다. 문제를 해결하고 체크인하십시오. 트렁크 작업 디렉토리에서 트렁크로 다시 분기에서 병합하기 위해 비슷한 작업을 수행합니다.
-r없이 svn merge는 지정한 두 위치를 diff하고 해당 diff를 작업 디렉토리에 적용합니다. 그래서 나는 일어난 일이 갈등이 없다는 것입니다. 왜냐하면 당신의 작업 영역이 지점의 머리와 일치하기 때문입니다. 따라서 브랜치 헤드와 트렁크 헤드 간의 차이는 문제없이 작업 디렉토리에 적용될 수 있습니다. 이것은 당신이 원하는 것이 아닙니다 : 트렁크와 일치하도록 작업 디렉토리를 변경하는 것뿐입니다. 분기를 다시 변경하고 체크인 한 다음 프로세스를 반복하십시오. 만약 merge가 (트렁크에 있지 않기 때문에) 변경을 취소한다면, 나는 svn merge의이 형태에 대해 옳다. 그러나 나는 그것을 사용하지 않았다.
[편집 : SVN 버전 1.5 ... 이전] 그대로
작업 디렉토리와 나뭇 가지 당신이 차이를 설명해야 SVN에서 같은 일이 아니며, 짜증나. SVN은 업데이트 나 체크 인보다 원하는 브랜치 병합을 수행하는 데 더 많은 정보가 필요합니다. 왜냐하면 afaik는 브랜치가 어디에서 발생했는지를 자동으로 고려하지 않기 때문에 작업 디렉토리가 체크 아웃 된 곳을 항상 고려합니다. 그 이유는 확실합니다. 나는 그것이 무엇인지 확실하지 않습니다. 왜냐하면 svn copy는 단순히 브랜치 (branch)보다 많은 것들을위한 것이기 때문입니다.
[편집 ...하지만 조슈아 맥키 논 (Joshua McKinnon)의 답변에 따르면, 1.5에서 svn은 자동으로 원하는 것을 수행하는 적절한 분기 병합을 지원합니다.병합 할 URL을 지정하고 병합중인 작업 디렉토리에서 명령을 실행하십시오. 그러므로이 경우에는
svn merge trunkURL
으로 시도해보십시오. 충돌이 표시되어야합니다. 먼저 작업 디렉토리를 되돌릴 수도 있습니다.]
그래서 1) 분기 2) 수정 된 줄 X "abc"를 트렁크에 3) 분기 된 4) 수정 된 줄 X "분기"에서 5) 병합 5? X 축의 내용을 "abc"로 수정하기 전에 그 내용은 무엇입니까? –
내 사무실에서 버전 차이가있을 것 같아/내 클라이언트 svn 및 서버 svn, 내가 최근 1.5 svn 버전을 업그레이드하고 repos 존재하는 서버에서 발생하지 않았다 기억합니다. 그래서 내가 충돌을 얻지 못했다는 사실은 버전 차이의 결과 일 수 있습니다. – ashishsony