一、背景

公司原有的SVN服务器年代比较久远经常出现重启情况,需要把SVN仓库重新迁移到新的服务器上,在网上也搜到过拷贝Repositories文件直接在新服务器覆盖的迁移方案,但考虑到原有的操作系统和现有的操作系统版本不一致,SVN版本也与现有的版本不一致的情况,担心有不兼容的情况就没有采用该方法,而采用下面的方法:

二、服务端迁移

将一台服务器上已有的SVN仓库数据整体迁移到另外一台服务器上,要保留所有的版本号和版本信息,需要以下过程来解决:

(一)关闭SVN服务,创建一个备份文件夹

关闭Svn Server相关服务,创建备份文件夹:D:\svn_bak

1、在服务中找到VisualSVN Server 服务关闭

svn迁移特定仓库到新的svn svn迁移到新服务器windows_svn

2、也可以通过VisualSVN管理工具关闭

svn迁移特定仓库到新的svn svn迁移到新服务器windows_库文件_02

svn迁移特定仓库到新的svn svn迁移到新服务器windows_svn迁移特定仓库到新的svn_03

(二)通过命令导出库文件

将准备要迁移的仓库通过命令导出,如果SVN仓库多,可以做成.bat文件执行(追踪svn安装目录,找到相关仓库文件)

svn迁移特定仓库到新的svn svn迁移到新服务器windows_svn_04

(截图和下面的不一致,请忽略,就这么找就行了)

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文件覆盖到新的服务器下

1、迁移用户、用户组文件

svn迁移特定仓库到新的svn svn迁移到新服务器windows_svn_05

2、迁移各仓库的权限文件

svn迁移特定仓库到新的svn svn迁移到新服务器windows_运维_06

svn迁移特定仓库到新的svn svn迁移到新服务器windows_svn_07

三、客户端配置

右键点击客户端的svn工程文件,选择TortoiseSVN->Relocate,将新服务器的svn工程地址录入,确定就可以了

svn迁移特定仓库到新的svn svn迁移到新服务器windows_svn迁移特定仓库到新的svn_08