Subversion (서브버전) 레파지토리 다른 서버로 옮기기

by Terry posted Oct 04, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

사용하던 소스코드 레파지토리를 다른 서버로 옮기거나 운영하던 서버 운영체제를 다시 설치해야 하는 경우가 발생하곤 합니다. 그럴 때를 대비해 서브버전 소스코드 레파지토리를 백업하여 새로운 서버로 옮기는 절차를 정리 하였습니다.


주의) 서브버전의 경우 같은 운영체제라도 서브버전 서버의 버전에 따라 이전에 운영 중이던 레파지토리가 새로운 서버에서 동작하지 않을 수 있습니다. 운영 중인 서버에서 레파지토리를 백업 해놓는 센스를 발휘 합시다:)

svn_migration.png


Step 1) 레파지토리 백업

Subversion이 설치된 서버에서 작업 합니다.

 "subversion-install-dir"\bin> svnadmin dump /path/to/repository > repo_name.svn_dump


생성된 백업파일은 모든 리비전 정보가 포함됩니다.

Step 2) 새로운 레파지토리 생성

새로 설치된 subversion 서버에서 빈 레파지토리를 생성합니다.

"subversion-install-dir"\bin> svnadmin create /path/to/repository


Step 3) 백업된 파일 복원

load 옵션을 이용해 백업된 파일을 복원합니다.

"subversion-install-dir"\bin> svnadmin load /path/to/repository < repo_name.svn_dump


이전에 운영하던 subversion server와 동일한 UUID를 사용하고 싶다면, "--force-uuid" 옵션을 사용하시면 loading 할 때 백업 파일의 UUID를 무시하지 않고 적용하게 됩니다.


이제 새로운 서버에서 소스코드를 받아서 개발하면 됩니다.


참고 1) 레파지토리를 백업한 후에 commit이 발생했을 때는 어쩌죠?

전체를 백업/복원하면 번거롭기 때문에 해당 revision만 백업/복원 하면 되겠습니다.

이전 서버에서,

"subversion-install-dir"\bin> svnadmin dump --incremental -r 123 /path/to/repository > rev123.svn_dump


새로운 서버에서,

"subversion-install-dir"\bin> svnadmin load /path/to/repository < rev123.svn_dump


요렇게:)