2011-12-08 2 views
2

나는 겉으로보기에는 단순하지만 아직 문제가있는 것을하려고합니다.SVN을 트렁크를 분기 삭제 파일로 병합

기본적으로, 내가 svn의 REPO을 가지고, 그것은, 트렁크 나는 지점에 파일 (SRC/유틸/foo.py를) 추가 122

버전에서 생성 된 지점을 가지고로 최선을 다하고 있습니다 리비전 128, 모두 좋습니다. . 내 지점에서하고자하는 트렁크에

그러나이 있었다 여러 커밋 (즉, (123,124,125,126,127) 그래서 내가 좋아하는 뭔가를 수행합니다!

$ svn merge -r122:127 ^/projects/my_project/trunk/src/utils . 
--- Merging r123 through r127 into '.': 
D foo.py 

으악를 그것은 내 파일을 삭제 무엇을!

+0

누군가 트렁크에서 foo.py를 삭제 했습니까? – crashmstr

답변

1

파일 자체가 아닌 파일을 소유하고있는 폴더와 더 관련이있을 수 있습니다. 대부분의 SCM 도구는 파일과 같이 폴더를 파일로 처리한다고 생각합니다. "utils"폴더가 병합되는지 한 레벨 위로 올라와야 할 수도 있습니다.

편집 :

그냥 조금 더 설명하는, 그것은, foo.py 트렁크에 존재하므로 경우에도 파일 "foo.py"는, 그것의 자식 인 것을 기록 폴더 "유틸"입니다 업데이트 된 utils 폴더가 병합되지 않고 표시되지 않을 수 있습니다.

1

먼저 svn merge 명령을 실행 한 올바른 디렉토리에 있습니까? 두 번째는 SVN에서 하위 폴더 만 병합하지 않습니다.

svn merge ... ^/projects/my_project/trunk 

을 작업 복사본의 루트에 사용하십시오. 병합 기록 (svn : mergeinfo)과의 관계에서 특히 좋습니다.

0

아! 누군가 트렁크에 실제로 분기를 병합했는데 트렁크에 파일을 추가했지만 그 커밋을 롤백하여 트렁크에서 파일을 삭제했습니다. 도와 주셔서 감사합니다. svn merge가 어떻게 작동하는지에 대한 좋은 교훈.