Moving SVN repository
+ 방법 1: tar.gz로 묶어서 그대로 쓰기
+ 방법 2: svnadmin dump, svnadmin load 사용하기
[방법 1]을 사용하면 svn version이 다른 경우
Expected FS format '2'; found format '3'
와 같은 에러가 발생한다. 그래서 이런 경우에는 다음과 같이
# old server에서
svnadmin dump old-repos > dumpfile
# new server에서
svnadmin create new-repos
svnadmin load new-repos < dumpfile
해야한다. 여러 개의 repository를 옮기기 위해서는 다음의 script를 이용
$ vi dump_repos.sh
1 #!/bin/bash
2
3 BASE_DIR="/svnrepos"
4 TARGET_DIR="./dump_files"
5
6 for name in $(ls $BASE_DIR); do
7 bname=$(basename $name)
8 svnadmin dump $BASE_DIR/$bname > $TARGET_DIR/${bname}.dump
9 echo "##### $BASE_DIR/$bname done #####"
10 done
$ vi load_repos.sh
1 #!/bin/bash
2
3 BASE_DIR="./dump_files"
4 TARGET_DIR="/svnrepos"
5
6 for name in $(ls $BASE_DIR); do
7 bname=$(basename $name .dump)
8 base=$BASE_DIR/$bname
9 target=$TARGET_DIR/$bname
10 svnadmin create $target
11 svnadmin load $target < ${base}.dump
12 echo "##### $target done #####"
13 done
group단위로 권한을 주기 위해서 다음의 명령어를 사용한다.
$ find -exec chmod 775 {} \;
참고: http://svn.collab.net/repos/svn/trunk/notes/repos_upgrade_HOWTO