应为一些原因,需要将目前的SVN服务器移动到另外一台服务器上。之前一直采取了一个傻瓜方法。就是再另外一台服务器上搭建一个新SVN Rep,然后通过在客户端连接两边的服务器,把一边得copy到另外一边,再上传了事。不过这个最大的问题就是丧失了原来的修改履历。
这次想用Subversion自己的back命令来完成。假设AServer 1.1.1.1 BServer 1.1.1.2
1. 将1.1.1.1的svn服务器备份
svnadmin dump PATH_TO_REPOSITORY > DUMP_FILE_NAME
如果文件很大,可以用
svnadmin dump PATH_TO_REPOSITORY | gzip > DUMP_FILE_NAME.gz
2. 将文件传到1.1.1.2服务器上
3. 在1.1.1.2上做成新的SVN Rep
mkdir -p PATH_TO_REPOSITORY
svnadmin create PATH_TO_REPOSITORY
4.在1.1.1.2上 Load Dump
svnadmin load PATH_TO_REPOSITORY < DUMP_FILE_NAME
如果是压缩文件
zcat DUMP_FILE_NAME.gz | svnadmin load PATH_TO_REPOSITORY
5.客户端重新设定server
svn switch –relocate OLD_REPOSITORY_URL NEW_REPOSITORY_URL