公司需要将一个SVN远程服务器的全部已有项目迁移到一台新服务器的SVN中,其中需要包含全部的提交日志,目前此工作已全部迁移完毕,特此记录一下操作步骤
环境描述:
1. 要迁移的远程SVN的 Windows服务器
2. 迁移目的SVN的Windows服务器
操作流程:
1. 使用SVN备份功能导出原先的SVN仓库文件
2. 将SVN文件复制到新的服务器磁盘中
3. 在新的服务器创建新SVN仓库
4. 加载导出备份文件即可
建议后面的路径中间均不要有空格,不然使用一些命令时容易有问题
因为导出的SVN 历史 文件可能很大,推荐使用U盘复制和备份后操作
操作步骤:
1. 用windows的cmd命令框CD进入到VisualSVN Server的安装目录下的bin目录,使用命令生成svn仓库的备份
此命令:第一个路径是svn仓库路径,第二个是备份的路径。
svnadmin dump D:svnRepositoriesdxd >D:SVNBackupdxdBackup20220319.dump
2. 复制导出的dump到新的SVN服务器,这个文件建议备份一下,算是留档了哈,在新的服务器中创建一个新的SVN仓库,名字可以与原来的不同不耽误备份导入
3. 加载这个dump备份文件。同样在新服务器的VisualSVN Server的安装目录下的bin目录,使用CMD命令加载新的SVN仓库中。
svnadmin load D:svnRepositoriesdxd <D:BackupdxdBackup20220319.dump
因为公司搭建了自己的IDC机房,所以将外面的服务迁移回本部。
svn迁移的方式有很多,比如svnadmin dump / historycopy / sync等等,这些操作起来都感觉略微麻烦,这里将一个最暴力的方式。
1、将svn 服务停止
# ps -ef | grep svn 找出对应 pid
# kill -9 12356 杀死进程
2、将svn对应的仓库打包
一般的svn仓库都在 /var/svn 目录,整体压缩打包;
# tar -czvf svn.tar.gz ./svn
3、使用scp命令将tar.gz 文件传到对应机房服务器
# scp svn.tar.gz root@10.0.0.255:/var/
4、解压
# tar -xzvf svn.tar.gz
5、启动svn服务器
# /usr/bin/svnserve -d -r /var/svn
(svn 安装可以用yum 进行 yum -y install subversion )
启动也可以用 service svnserve start
将windows上svn迁移到linux上
实现svn方式和http方式访问
进入conf目录
authz :负责test3库的账号权限管理,控制账号是否读写权限
passwd :负责test3库的账号和密码管理,注意密码是明文的
svnserve.conf :svn服务器配置文件
示例:
启动:
端口:3690 注意打开防火墙
访问:
svn://192.168.1.206:3690/test3
用mod_dav_svn模块实现Apache服务进行访问svn仓库,mod_dav_svn是Apache和svn之间的接口
SVNParentPath /svn/svndir
指如果有多个版本库建议使用SVNParentPath不使用SVNPath,/svn/svndir 版本库位置
AuthUserFile /svn/svndir/passwd
指后面使用apache的htpasswd创建的用户名密码
AuthzSVNAccessFile /svn/svndir/authz
指权限文件
创建用户并设置密码
此时可以通过
http://192.168.1.206/svn/test3
在浏览器中输入用户名密码访问
直接将windows下Repositories目录下的数据打包迁移到linux下的Repositories即可访问,但是用户名和密码不可以迁移,需要重建
1 注意权限为问题,如果/svn/svndir属主不是apache,会一直访问拒绝访问
2 svn协助与http协议
svn协议,用于客户端使用svn://方式访问版本库,而mod_authz_svn模块让客户端可通过Apache访问版本库,它们分别使用不同的服务:svnserve、httpd进行访问。由于用户、组权限不同,权限管理方式也不相同,因此,不建议同时启动两种访问方式。
而易用性,管理方便的角度来分析,Apache以,mod_authz_svn模块的方式访问版本库会更多人选择。(mod_authz_svn方式,使用80端口访问,并且提供https等加密传输,用于用户信息验证的密码保存方式不是明文的)
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)