2014-03-19 2 views
-2

파일 A의 복사본을 SVN 저장소의 파일 B로 만들고 파일 B를 일부 변경했습니다. 그런 다음 누군가가 파일 A를 변경했으며 이러한 변경 내용을 파일 B에 가져 오려고합니다. 어떻게 할 수 있습니까? 디렉토리의 이름이 달라야하기 때문에 svn copy 명령으로 디렉토리를 복사하지 않았습니다. 그들은 로컬로 복사되고 .svn 디렉토리를 제거하고 A에서 B로 이름을 바꾼 다음 svn add, svn ci로 이름을 바꿉니다.SVN이 다른 파일에 병합합니까?

답변

1

복사 및 이동을 위해 내장 된 Subversion 도구를 사용하지 않으면 Subversion이 변경 사항을 추적 할 수 없다고 기대할 수 있습니다. Subversion에 관한 한, 이것은 완전히 새로운 파일이며 이전 사본과는 아무런 관련이 없습니다. 이 경우에는 Subversion 병합을 수행하는 쉬운 방법이 없습니다.

svn --ignore-ancestry을 수행 할 수 있지만 유사한 이름의 파일 만 병합하면 양방향 병합이 끝납니다. 즉, 변경 사항이 발생하더라도 파일의 차이점을 통보 받게됩니다. 지점 자체에. 역사도없고, 3 방향 병합도 없습니다.

상황에 따라 최선의 방법은 일부 비교 도구를 사용하여 수동으로 병합하는 것입니다.

svn cp을 수행하지 않고 저장소의 한 부분에서 다른 부분으로 파일을 복사하지 마십시오. Subversion을 사용하여 병합을 유지하는 능력을 근본적으로 손상 시켰습니다.

다음번에 이와 같은 작업을 수행 할 때 svn cp을 사용하여 다른 곳에 파일을 복사하고 변경 사항을 커밋 한 다음 svn mv을 사용하여 파일의 이름을 바꾸거나 파일을 이동하십시오. 이렇게하면 Subversion이 파일의 이름을 바꾸고 이동하도록 추적 할 수 있습니다.

관련 문제