SVN服务器更换方案
SVN服务器切换方法:
更换SVN(Subversion)服务器通常包括以下几个步骤:备份数据、配置新服务器、迁移数据、测试新环境,以及将用户切换到新服务器。
以下是一个详细的迁移方案1:
- 配置新服务器
在新服务器上安装和配置SVN服务。确保新服务器的操作系统和软件环境满足SVN的运行需求。
- SVN安装:
yum install subversion
- 数据同步:
由于SVN数量量较大,这个方案可以慢慢传,且不影响源库使用.
更改钩子命令: pre-revprop-change(因为svnsync要改这个库的属性,也就是要将源库的属性备份到这个库,所以要启用这个脚本):
cd /path/to/repository/hooks;
cp pre-revprop-change.tmpl pre-revprop-change;
chmod 755 pre-revprop-change;
vi pre-revprop-change;
#将该脚本后面的三句注释掉,或者干脆将它弄成一个空文件。 即:
# if [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi
# echo "Changing revision properties other than svn:log is prohibited" >&2
# exit 1
初始化同步: | 命令解释: svnsync init SVN备份仓库 SVN源数据仓库
svnsync init svn://10.0.1.48:33690/ svn://10.0.1.24:23690/
执行备份: | 执行此命令后才正式开始备份
svnsync sync svn://10.0.1.48:33690/
-
同步配置:
同步源SVN服务器的配置文件,如svnserve.conf、passwd和authz,以保留用户和权限设置。 -
测试新服务器
在新服务器上测试存储库的访问和功能。
-
连接测试:
确保能够通过SVN客户端连接到新服务器,并能够执行常见的操作(如checkout、commit、update等)。 -
权限测试:
检查用户权限设置是否正确,确保不同用户可以访问他们被授权的部分
- 更改新SVN服务器UUID为旧服务器UUID:
SVN服务器的UUID是SVN服务器的唯一标识符,用户数据同步,都会验证该值。
img_3.png
查询旧SVN服务器UUID:
svn info svn://10.0.1.24:23690/
更改新SVN服务器UUID(未填参数自动新的UUID):
svnadmin setuuid /path/to/repository NEW_UUID
- 切换用户到新服务器
一旦确认新服务器正常运行,可以将用户切换到新服务器, 旧服务器下线(避免有用户忘了切换导致数据提交到旧服务器)。
更新SVN客户端配置:
告知所有用户新服务器的地址,并指导他们如何更新他们的SVN客户端配置。
- 进入工作目录:
打开包含SVN工作副本的文件夹。 -
选择Relocate选项:
右键点击该文件夹,在弹出的菜单中选择“TortoiseSVN” -> “Relocate…”(或选择中文的“重定位”)。
img_1.png
-
输入新的SVN服务器地址:
在弹出的“Relocate”对话框中,将“To URL:”字段中的旧SVN服务器地址更改为新的SVN服务器地址。确保路径的其他部分(如仓库名称、分支/标签名等)保持不变。
img_2.png
以下是一个详细的迁移方案2:
- 备份现有SVN服务器数据
确保所有的数据和配置都得到备份,以防迁移过程中出现问题。
- 备份存储库:
使用svnadmin dump命令导出所有存储库。
svnadmin dump /path/to/repository > repository.dump
这将创建一个包含存储库完整历史的转储文件。
- 备份配置文件:
备份SVN服务器的配置文件,如svnserve.conf、passwd和authz,以保留用户和权限设置。
- 配置新服务器
在新服务器上安装和配置SVN服务。确保新服务器的操作系统和软件环境满足SVN的运行需求。
- 恢复数据到新服务器
将备份的数据导入到新服务器。
- 创建新的存储库:
使用svnadmin create命令在新服务器上创建存储库。
svnadmin create /path/to/new/repository
- 导入数据:
使用svnadmin load命令将转储文件导入到新存储库。
svnadmin load /path/to/new/repository < repository.dump
- 恢复配置文件:
将备份的配置文件复制到新存储库的适当位置。
- 测试新服务器
在新服务器上测试存储库的访问和功能。
-
连接测试:
确保能够通过SVN客户端连接到新服务器,并能够执行常见的操作(如checkout、commit、update等)。 -
权限测试:
检查用户权限设置是否正确,确保不同用户可以访问他们被授权的部分
- 切换用户到新服务器
一旦确认新服务器正常运行,可以将用户切换到新服务器, 旧服务器下线(避免有用户忘了切换导致数据提交到旧服务器)。
更新SVN客户端配置:
告知所有用户新服务器的地址,并指导他们如何更新他们的SVN客户端配置。
- 进入工作目录:
打开包含SVN工作副本的文件夹。 -
选择Relocate选项:
右键点击该文件夹,在弹出的菜单中选择“TortoiseSVN” -> “Relocate…”(或选择中文的“重定位”)。
img_1.png
-
输入新的SVN服务器地址:
在弹出的“Relocate”对话框中,将“To URL:”字段中的旧SVN服务器地址更改为新的SVN服务器地址。确保路径的其他部分(如仓库名称、分支/标签名等)保持不变。
img_2.png