公司服务器被前面几任开发搞得磁盘只剩下几百M了,服务器里面东西乱七八糟,公司领导不太愿意直接扩容磁盘,而且关键问题是:开发环境、测试环境 、生产环境,共用一台服务器。😂,只能说前任过得太苦逼了(哈哈,话中有话,懂就好)进入正题:
新服务器svn环境安装
1、在旧服务器中,使用命令svn --version查看svn版本,例如:
(base) [root@api svn]# svn --version
svn, version 1.7.14 (r1542130)
compiled Apr 11 2018, 02:40:28
Copyright (C) 2013 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/
The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles 'http' scheme
- handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
- handles 'file' scheme
2、根据第一步得到的svn版本来安装(根据自己的版本号,自行百度),我这边是直接执行yum安装,刚好是相同版本
yum -y install subversion
接下来,检查SVN 是否安装成功。
svn --version #出现version,表示安装成功
迁移步骤
建议迁移的时候,将所有源库SVN所有账号的权限改成只读,或者停掉SVN服务器
SVN的迁移有两种方式:
1) dump出源机器SVN的代码库,然后load到新服务器上去。
2) 使用 svnsync 直接同步源机器代码库。
比较这两种迁移的方式,我比较推荐第二种,使用svnsync进行迁移。第一种使用dump出源机器代码库,dump完,看了一下dump文件,几十个G,太大了
下面直接记录下第二种方式迁移的步骤
1、新服务器:
svnadmin create /data/svn/www # 创建版本库www
cd /data/svn/www
cp hooks/pre-revprop-change.tmpl hooks/pre-revprop-change
chmod 777 hooks/pre-revprop-change
vim hooks/pre-revprop-change # 修改最后一行代码,如下
exit 0
2、具体迁移命令
svnsync init file:///data/svn/www svn://旧服务器svn地追/www # 初始化
svnsync sync file:///data/svn/www # 开始同步数据
PS : 这块需要输入密码验证,新服务器的密码 源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限
3、等待迁移完成,进行版本校验
svnadmin verify /data/svn/www
没提示错误,代表迁移成功
4、关键步骤
复制旧服务器上的svn仓库uuid到新服务器对应的svn仓库,这样子svn客户端才不会报错
# 旧服务器
(base) [root@api svn]# cat www/db/uuid
9d0c555b-2354-404e-b7a9-d3e529fcf44f
# 新服务器
vim /data/svn/www/db/uuid
# 用旧服务器的uuid替换这里的uuid
现在可以去svn客户端测试了
测试
关键步骤,将svn工作副本切换指向新服务器,核心命令是
svn relocate
不同系统不同客户端,操作大同小异,大家自行操作即可
最后可以测试一下提交svn能不能成功了
参考:https://blog.csdn.net/liangcl_2018/article/details/79745688