SVN迁移、安装、配置笔记

jackxiang 2012-2-12 14:01 | |
【本文主要介绍SVN的迁移方案,以及如何安装部署一台SVN服务器】
一、迁移方案

<<<近期发现svn放在机房里托管,速度上很难受到保证,经常遇到网络故障,导致在开发的时候很受影响。故决定将SVN迁移回本地机房里,然后通过建立VPN通过供外界使用,效果图如下>>>

工作机制:SVN Server配置于本地机房中(内网接入),外网接入时需要通过VPN通道。

备份机制:项目进行中时,定期备份SVN服务器的版本库(可采用脚本实现);结项后,手动check out版本库,进行整体备份。

优势:保证了SVN Server的安全性,稳定性。且当SVN Server出现宕机等异常时,可立即切至备份服务器继续工作。

劣势:当 VPN通道出现异常时,导致外网则无法接入SVN Server。
自动备份方案

采用rsync文件同步方式。将SVN版本库进行同步工作,rsync教程
二、安装配置SVN服务器
1.安装apr和apr-util


2.安装apache

3.安装subversion

注意:删除apr与apr-util。

/*将svnadmin放入$PATH环境变量里*/

/* 你可以用以下命令检验subversion是否安装成功 */
svnadmin –version
4.subversion环境的搭建

使用与Apache模块的方式运行
首先,把我们需要的SVN模块加载上,修改Apache的配置文件httpd.conf:

#然后配置仓库:

建立SVN版本库


建立svnaccessfile

然后,配置验证方式:
这里使用旦Apache的验证方式:

添加用户和密码:

注意:-bc 第一次创建需要c参数,接下来就只要b这个参数即可
下面,就要写这个svnaccessfile文件说明

将这个设置完成后。重启Apache

就可以通过

http://localhost/svn/test

这个URL来访问仓库了

导入导出SVN版本库可以使用SVN客户端工具实现,很简单,这里就不详细说明了,客户端工具为:TortoiseSVN,图形是只乌龟
三、遇到的问题

问题1.将线上的SVN环境拷贝过来,配置好后,通过URL访问提示如下信息:Could not open the requested SVN filesystem
查看日志文件,发现:Expected FS format ’2′; found format ’3′

问题产生原因:

服务程序是1.4.x版本的svnserve或mod_dav_svn,版本库通过1.5.x版本的svnadmin或TortoiseSVN创建时,会产生这个问题

解决方法:

使用1.5以上的SVN来作为服务
或使用1.4系列的svnadmin或TortoiseSVN来创建版本库
或使用1.4.x系列创建新版本库,通过1.5.x版本备份并恢复原版本库到新版本库

问题2.


问题产生的原因:

SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。 由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的。(这里指定为开始安装的apr目录),这一点知识非常重要。

解决方法:
下载apr-1.2.12.tar.gz与apr-util-1.2.12.tar.gz。

编译安装这两个包,然后重新安装下apache与subversion即可。

问题3.

/usr/bin/ld: cannot find -lexpatcollect2: ld returned 1 exit status
make[1]: *** [test/serf_get] 错误 1
make[1]: Leaving directory `/root/build/subversion-1.6.11/serf
‘make: *** [external-all] 错误 1

解决方法:

来源:http://www.jiunile.com/svn%E8%BF%81%E7%A7%BB%E3%80%81%E5%AE%89%E8%A3%85%E3%80%81%E9%85%8D%E7%BD%AE%E7%AC%94%E8%AE%B0.html


罗春晖兄弟的一篇文章,觉得较有价值,短小很有用,于是摘抄了,Url:http://www.luochunhui.com/svn%E6%BA%90%E8%BF%81%E7%A7%BB/
SVN源迁移 内容如下:

在迁移服务器过程中,经常会用到SVN的源迁移。

一个简单的方式,是直接打包源目录,并在新服务器上解压。 但这种情况,需要保证两个源的SVN版本一致,在打包过程中,也不得有svn checkin,否则可能会导致源损毁或不可预期的后果。

一个安全的方式, 是使用svnadmin工具

旧服务器:

svnadmin dump /home/svn/projectrepos > ~/projectrepos.svn.dump
scp -C ~/projectrepos.svn.dump username@new.server.ip:/home/giko

新服务器:
cd /home/giko
svnadmin create /home/svn/projectrepos
svnadmin load /home/svn/projectrepos < projectrepos.svn.dump

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/4972/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2012-2-16 18:19
评论列表
2012-3-14 17:52 | guoxinc3255 Email Homepage
呵呵嘛连个皮毛都没有的真是太奇怪了这是为什么呢
2012-2-24 03:01 | lucy00949 Email Homepage
好帖子,声援不了就果断留下文字支持下.............
2012-2-19 11:17 | hxngb3jf Email Homepage
参考参考,我认为很好,大家说说
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]