svn 스위치 --relocate:uuid 오류?

svn 스위치 --relocate:uuid 오류?

새로운 SVN 저장소로 전환하려고 합니다.

현재 다음과 같은 결제 내역이 있습니다.

$ svn info
svn+ssh://some.server.edu/home/name/svn-repositories/proj/trunk

이제 전환하고 싶지만 오류가 발생합니다.

$ svn switch --relocate \
  svn+ssh://some.server.edu/home/name/svn-repositories/proj/trunk \
  https://subversion.assembla.com/svn/name/trunk/proj .
svn: The repository at 'https://subversion.assembla.com/svn/name/trunk/proj' 
has uuid '...', but the WC has '...'

요점은 svn switch --relocate서로 다른 uuid를 가진 두 개의 저장소를 갖는 것이라고 생각합니까? 새 저장소로 올바르게 전환하는 방법은 무엇입니까?

그런데 디렉터리는 정확해야 합니다. 이전 디렉터리 proj/trunk와 새 trunk/proj디렉터리에는 정확히 동일한 파일이 포함되어 있습니다.

$ svn ls https://subversion.assembla.com/svn/<name>/trunk/proj
foo.txt
$ svn ls svn+ssh://some.server.edu/home/name/svn-repositories/proj/trunk
foo.txt

내 Mac에서 svn 1.6.5를 사용하고 있습니다.

답변1

svn switch --relocate다른 저장소가 아닌 새 URL에서 동일한 저장소를 찾을 것으로 예상됩니다.

svnsync새 저장소를 만드는 데 사용하고 있습니까 ? 이 경우 svnadmin setuuid이전 저장소와 동일한 uuid를 사용할 수 있습니다. ~에 따르면svn 책의 svnsync 문서, 이를 통해 기존 작업 복사본을 재사용할 수 있습니다.

답변2

--relocate이 URL을 사용하여 작업 복사본에 액세스하면 이 플래그가 작업 복사본을 업데이트합니다.기존의저장소 변경. SVN에는 작업 복사본을 다음으로 전환하는 좋은 방법이 없습니다.새로운동일한 파일이 포함되어 있더라도 기록, 체크인 횟수, 파일 내용 등 많은 것들이 다를 수 있으며 SVN은 이러한 유형의 차이점을 설명하도록 설계되지 않았기 때문입니다.

순전히 고객의 관점에서 질문하셨지만, 무엇을 하려는지 더 폭넓게 이해하시는 것이 도움이 될 것입니다. 예를 들어 저장소를 새 서버로 이동하려고 하시나요? 그렇다면 어떤 방법을 사용했으며 더 좋은 방법이 있습니까? 아니면 다른 사람이 관리하는 저장소를 사용하다가 다른 사람이 옮겼습니까? 이전 저장소의 모든 기록이 새 저장소에 있습니까? 완전히 새로운 저장소를 만드는 대신 SVN 데이터베이스 파일을 새 서버에 복사할 수 없습니까?

원하는 것을 강제로 적용할 수 있는 방법이 있습니다. 작업 복사본에서 .svn 디렉터리를 삭제하고(먼저 백업을 만드세요!) 새 서버에서 새 복사본을 확인한 다음 모든 .svn 디렉터리를 작업 복사본에서 이동하는 것입니다. 작업 사본. 새 복사본을 작업 복사본의 해당 위치에 복사합니다. 그러나 큰 그림을 고려한 후에만 그렇게 하십시오.

관련 정보