SVN 기능 중 Svnsync 라는 기능이 있어, 원격에서 서로 다른 레파지토리를 동기화 시킬 수 있다.
물론 양 측의 리비전을 맞추기 위해서는 저장 대상이 되는 위치는 빈 데이터이여야 한다.
그런데 복사해야할 레파지토리가 오래된 경우 데이터가 매우 커서 한번 Sync를 시도하면 세월아 내월하가 될 수 있다. 더욱이 특정 버전에서 파일크기가 크면, http 기반의 svn 서버 중 일부는 에러를 내고 이야기를 진행하지 못하는 경우도 있다.
이 경우에 처리하는 방법은 다음과 같다.
1. svnadmin dump를 이용해서 원본 데이터를 뜬다.
2. 복제 대상에 원본 데이터를 svnadmin load를 이용해서 붇는다.
3. svnsync init 할 때, --allow-non-empty를 넣어 처리한다.
즉 svnsync 초기화 할 때, --allow-non-empty를 하면된다.
그리고 그 뒤는 sync로 연속.
만일 sync 중 오류가 나면, 해당 revision만 dump를 뜨고 다시 대상에서 붇고 sync를 다시해준다.
중요한 것은 쌍방의 버전이 동일하게 진행되어야 한다.
728x90