2008-10-27 5 views
6

트렁크를 기능 분기로 병합 할 때 트렁크에서 발생한 삭제가 내 작업 복사본으로 복제되지 않습니다.subversion 병합 삭제 명령

왜 트렁크에서 삭제하면 병합 할 때 분기의 동일한 파일이 삭제되지 않습니다? Subversion 1.5 클라이언트와 서버를 사용하고 있습니다.

브랜치를 재 통합 할 때 브랜치의 파일 변경 사항을 건너 뛸 것이라고 가정합니다.

동료가 "준비가되지 않았기 때문에"파일을 트렁크에서만 삭제할 때 트렁크에서 파일을 교환하는 가장 좋은 방법은 무엇입니까?

상황은 :

cd project; svn copy trunk branches/f1; svn ci -m "branching out" branches f1; 
echo "modifying a file on branch." >> branches/f1/file1; svn ci branches/f1 -m "Branch modified"; 
echo "Above modify is not even needed to state the case"; 
svn rm trunk/file1; svn ci trunk -m "creating (conflicting) delete on trunk"; 
cd branches/f1; svn merge svn+ssh://repos/trunk . 
[ -f file1 ] && echo "file f1 does exist while it should have been deleted by merge."; 

그래서, 파일은 여전히 ​​파일을 적극적으로 삭제 된 어디 트렁크에 병합하고있어 비록 내 작업 복사본에 존재합니다. 매우 예상치 못한 결과. 필자의 경우에는 파일을 변경하지 않았기 때문에 svn이 파일을 저장하는 이유를 생각할 수있는 유일한 이유입니다.

답변

1

필자가 잘 해낸 것은 file1에 로컬 충돌을 만드는 것입니다. 지사에서 수정되었습니다. 트렁크에서 삭제되었습니다. 병합하면 충돌 할 것입니다. 그래서 파일은 여전히 ​​주위에있을 것입니다.

  1. 위의 코드를 실행 한 후, 이 svn status의 결과를 포함 :

    나는이 테스트를 제안한다.
  2. all에서 해당 분기를 수정하지 않고 과 동일한 코드를 사용해보십시오. (svn status뿐만 아니라 여기 도움이 될 것입니다.)
0

당신은 트렁크에 삭제 된 파일을 병합 한 후 버전 제어에서 여전히 있는지 확인이 있습니까? 버전 화되지는 않았지만 여전히 존재할 수 있습니다. 이는 예상되는 동작입니다. svn status의 출력을 보면 파일이 여전히 버전 제어하에 있는지 확인할 수 있습니다.

상황을 자세히 설명하는이 버그 보고서를 살펴볼 수 있습니다. http://subversion.tigris.org/issues/show_bug.cgi?id=2282

관련 문제