写在前面
- 这里说的Linux环境是指svn服务段搭建环境,客户端则在Windows。
- 这里只做全量迁移的操作。
- 以TortoiseSVN为例
在svn客户端
- 在cmd中输入以下命令先进行备份:
svnrdump dump svn://oldPath/main > E:/test/main.dmp
- 若提示‘svnrdump’不是内部或外部命令,则需将svn以Modify操作重新安装,并勾选‘command line client tools’组件
- svn://oldPath/main 是要备份的代码库的svn路径
- E:/test/main.dmp 是导出的备份文件的完整路径
- 在将备份文件加载到新的svn路径
svnrdump load snv://newPath/main < E:/test/main.dmp
- snv://newPath/main 是要迁移的目标svn路径
- 报错:E165006:此版本库不允许修改版本属性;请管理员创建pre-revprop-change钩子---解决方案:请svn服务端管理员在svn仓库目录下的hooks文件夹下创建一个pre-revprop-change文件(无后缀),并添加文本“#!/bin/sh \nexit0”
- 报错:Revprop change blocked by pre-revprop-change hook (exit code1)---解决方案:说明pre-revprop-change钩子文件已经存在,根据output信息查看错误信息
在svn服务端
- 在终端中输入以下命令进行备份:
svnadmin dump /home/oldSVN/TestProject/code > /home/oldBackup/test/main.dmp
- /home/oldSVN/TestProject/code 是要备份的本地代码库的路径
- /home/oldBackup/test/main.dmp 是导出的备份文件的完整路径
- 将导出的备份文件拷贝到新的svn服务端机器中,并终端中输入以下命令进行加载:
svnadmin load /home/newSVN/TestProject/code < /home/newBackup/test/main.dmp
- /home/newSVN/TestProject/code 新的svn本地代码仓库路径
- /home/newBackup/test/main.dmp 拷贝到新svn服务端机器中的备份文件的完整路径
参考:
https://www.saas-secure.com/svn-hosting/svn-dump-restore.html#svn-remote-backup-restore