CentOS下使用 svnsync迁移SVN代码库

Home / Article MrLee 2019-11-7 3166

服务器搬迁,蛋疼的事情就很多。

1)在新服务器上创建 代码仓库,创建完成记得在/home/svn/svnrepos/conf/passwd文件中添加你的svn用户名和密码

svnadmin create /home/svn/svnrepos

2)修改新建仓库中hooks 下的 名为 pre-revprop-change 的文件:

cp pre-revprop-change.tmpl pre-revprop-change

chmod 777  pre-revprop-change  (  给pre-revprop-change文件 赋执行权限 )

 修改  pre-revprop-change 脚本最后一行 为  exit 0

3)设置同步服务器

svnsync init file:///home/svn/svnrepos svn://xx.xx.xx.xx

 svnsync  init   file:// 新机器仓库目录路径   源服务器的IP(可以通过 http 协议,还可以通过svn协议)   

(PS : 这块需要输入密码验证,新服务器的密码    源服务器SVN的账号密码,此账号应该有仓库所有代码的读取权限)

4) 同步 

svnsync sync file:///home/svn/svnrepos

5)等待同步完成,启动SVN服务器即可。至此,SVN服务就已经迁移完了。

6仅供参考:将原仓库的 uuid 复制过来,覆盖新服务器上的UUID,这样就可以正常提交,修改代码了。此项我并没有操作,貌似也可以提交。

最后注意一点,账号验证。下面参考

authz文件:添加

[/]
your name=rw

passwd文件

your name = your pass

svnserve.conf

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
##使授权用户有写权限 
auth-access=write
##密码数据库的路径 
password-db=passwd
##访问控制文件 
authz-db=authz
##认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 
realm=/home/svn/svnrepos


上述方法同步速度会非常慢。如果带宽可以的话,可以考虑下面方法:

#创建目录
mkdir /home/svn/svnrepos
#创建代码库
svnadmin create /home/svn/svnrepos
#启动
svnserve -d -r /home/svn/svnrepos
#导入
svnadmin load /home/svn/svnrepos</home/ciis.dump
#导出
svnadmin dump /home/svn/svnrepos>/home/ciis.dump


本文链接:https://www.it72.com/12583.htm

推荐阅读
最新回复 (0)
返回