一、背景
一个基于 Windows 的 SVN 服务器,用于管理团队的代码库。该 SVN 仓库托管着公司的软件项目,包括多个分支和版本的代码。我们的团队规模约为 50 人,分布在不同的地理位置,他们都依赖 SVN 仓库来进行代码版本控制和协作开发。
我们决定迁移 SVN 仓库到一个新的 Windows 服务器上,主要出于以下几个原因:旧服务器的硬件即将到期,希望将其替换为性能更好的硬件;同时,我们计划升级 SVN 服务器软件版本,以获得更好的安全性和性能。
二、服务端迁移
将一台服务器上已有的SVN仓库数据整体迁移到另外一台服务器上,要保留所有的版本号和版本信息,需要以下过程来解决:
(一)关闭SVN服务,创建一个备份文件夹
关闭Svn Server相关服务,创建备份文件夹:D:\svn_bak
1、通过VisualSVN管理工具关闭
(二)通过命令导出库文件
将准备要迁移的仓库通过命令导出,如果SVN仓库多,可以做成.bat文件执行(追踪svn安装目录,找到相关仓库文件)
进入SVN安装目录默认C:\Program Files\VisualSVN Server\bin
下,执行如下
bash
svnadmin dump D:\Repositories\test > d:\svn_bak\test.dump
(三)上传文件到新的SVN服务器
将导出的文件上传到新的svn服务器,如目录为E:\backup\
这里传输是通过FTP方式进行上传下载
参考 :文章
(四)在新的服务器上创建新的仓库
在新的服务器上创建新的仓库,如果仓库多,可以做成.bat文件执行
bash
svnadmin create E:\Repositories\test
(五)导入dump文件到新仓库
再新的服务器上导入原有的仓库文件,如果仓库多,可以做成.bat文件执行
bash
svnadmin load E:\Repositories\test < E:\backup\test.dump
(六)迁移用户、用户组以及各仓库的权限文件
服务器备份完成,但是以上操作会导致所有用户和用户组,以及文件权限的配置丢失,比如密码、权限控制等,需要将原有的conf文件覆盖到新的服务器下
1、迁移用户、用户组文件
2、迁移各仓库的权限文件
三、客户端配置
右键点击客户端的svn工程文件,选择TortoiseSVN->Relocate,将新服务器的svn工程地址录入,确定就可以了