2011-09-01 3 views
1

트렁크에서 분기 한 다음 내 지점에서 며칠 동안 개발 작업을 한 후에 누군가 다른 사람이 트렁크의 프로젝트 디렉토리 이름을 변경했습니다. 이런 식으로 뭔가 :/프로젝트/디렉토리/트렁크/프로젝트/디렉토리/트렁크/new_dir_name이 나에게 (물론) 문제의 발진이 발생했습니다트렁크 디렉토리 이름이 변경된 후 SVN이 트렁크에서 분기로 병합되었습니다.

에/old_dir_name 에서 . 그는 이런 짓을 할 때의 로그 항목을 보면

, 그것은 보여줍니다 모두는 다음과 같습니다 삭제 된 경로 개정 에서 작업 경로 복사/프로젝트/디렉토리/트렁크/old_dir_name 추가/프로젝트/디렉토리/트렁크/new_dir_name/프로젝트/Directory/trunk/old_dir_name 12345

트렁크의 테스트 병합을 내 브랜치에 적용하여 최신 업데이트를 얻었을 때 한 파일에서 충돌 오류가 발생했습니다. 해당 파일의 최신 개정판에 대한 테스트 병합을 시도하면 오류 저장소가 '... /! svn/bc/13649/Project/Directory/old_dir_name/trunk'로 영구적으로 이동했습니다.

어떻게하면이 문제를 해결할 수 있으며 필요에 따라 지점을 최신 상태로 유지할 수 있습니까?

(문제가있는 경우 TortoiseSVN 프런트 엔드를 사용합니다).

+0

이'/ Project/Directory/trunk/old_dir_name'과'... /! svn/bc/13649/Project/Directory/old_dir_name/trunk'는 다소 모순됩니다. 그것을 명확히 할 수 있습니까? –

답변

0

이것은 2002 년부터 잘 알려진 svn 버그입니다 (here 참조).

예를 들어 분기에서 파일/디렉토리 (또는 그 아래에있는 파일)의 이름을 바꾸고 파일/디렉토리 (또는 그 아래에있는 파일)를 트렁크에서 변경하면 분기를 트렁크에 병합하는 데 문제가 있습니다.

왜 이런 일이 발생합니까? 간단합니다 - svn rename은 파일 (a)의 제거와 새 이름 (a ')을 추가하여 구현됩니다. 그래서 내 예제와 (a)의 가지에있는 (a ')는 같은 파일에서 상속받지 않습니다. Hovewer, svn은 문제를 최소화하고 (a ') 태그 정보를 추가합니다. 따라서 svn 로그온 (a')을 수행하면 이름 변경 작업과 (a) 변경 사항이 표시됩니다.