一、背景
公司原有的SVN服务器年代比较久远经常出现重启情况,需要把SVN仓库重新迁移到新的服务器上,在网上也搜到过拷贝Repositories文件直接在新服务器覆盖的迁移方案,但考虑到原有的操作系统和现有的操作系统版本不一致,SVN版本也与现有的版本不一致的情况,担心有不兼容的情况就没有采用该方法,而采用下面的方法:
二、服务端迁移
将一台服务器上已有的SVN仓库数据整体迁移到另外一台服务器上,要保留所有的版本号和版本信息,需要以下过程来解决:
(一)关闭SVN服务,创建一个备份文件夹
关闭Svn Server相关服务,创建备份文件夹:D:\svn_bak
1、在服务中找到VisualSVN Server 服务关闭
2、也可以通过VisualSVN管理工具关闭
(二)通过命令导出库文件
将准备要迁移的仓库通过命令导出,如果SVN仓库多,可以做成.bat文件执行(追踪svn安装目录,找到相关仓库文件)
(截图和下面的不一致,请忽略,就这么找就行了)
svnadmin dump D:\Repositories\test > d:\svn_bak\test.dump
(三)上传文件到新的SVN服务器
将导出的文件上传到新的svn服务器,如目录为E:\back\
(四)在新的服务器上创建新的仓库
在新的服务器上创建新的仓库,如果仓库多,可以做成.bat文件执行
svnadmin create E:\Repositories\test
(五)导入dump文件到新仓库
再新的服务器上导入原有的仓库文件,如果仓库多,可以做成.bat文件执行
svnadmin load E:\Repositories\test < E:\back\SVN_BAK\test.dump
(六)迁移用户、用户组以及各仓库的权限文件
服务器备份完成,但是以上操作会导致所有用户和用户组,以及文件权限的配置丢失,比如密码、权限控制等,需要将原有的conf文件覆盖到新的服务器下