您的位置:首页 > 运维架构 > Apache

centos5 svn安装、部署、迁移与apache整合

2012-07-13 17:20 387 查看
简介:

svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。

运行方式

svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊,用户自行选择。

存储数据

  svn存储版本数据也有2种方式:BDB(一种事务安全型表类型)和FSFS(一种不需要数据库的存储系统)。因为BDB方式在服务器中断时,有可能锁住数据,所以还是FSFS方式更安全一点。

  详见subversion。

编辑本段

集中式版本管理系统

  Svn是一种集中式文件版本管理系统。

  集中式管理的工作流程如下图:

                                               


                                           

一、安装

[root@server-180 ~]#yum install httpdmod_dav_svn subversion mysql-*
mod_dav_svn是整合svn通过apache访问的一个模块。

二、建立svn项目主路径

[root@server-180 ~]#mkdir -p /data/eucita


三、使用svnadmin命令创建SVN项目库(1.2版本以后默认使用fsfs存储方式)

[root@server-180 ~]#svnadmin create   /data/ecuita/svn


注:你可以指定SVN库的存储方式

[root@server-180 ~]#svnadmin create  --fs-type fsfs  /data/eucita/svn


或者:

[root@server-180 ~]#svnadmin create  --fs-type bdb  /data/eucita/svn


四、建立一个apache认证用户测试(如使用数据库认证或AD、openldap认证方式,此步省略)

[root@server-180 ~]#htpasswd -c  /data/eucita/svn.htpasswd   test

[root@server-180 ~]#htpasswd /data/eucita/svn.htpasswd   test1

 创建认证数据库(如果使用apache用户认证文件方式,此步省略)

[root@server-180 ~]#mysql -uroot -p


创建数据库

mysql>create database svn;

mysql>use svn;

创建用户svn

mysql>GRANT ALL PRIVILEGES ON *.* TOsvn@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;


创建用户表

mysql> CREATE TABLE user(username CHAR(20) NOT NULL,passwd CHAR(20) NOT NULL,PRIMARY KEY (username));


添加测试帐号

mysql> insert into user values('test',ENCRYPT('123456'));
mysql> insert into user values('test1',ENCRYPT('123456'));

五、创建SVN访问控制文件

[root@server-180 ~]#touch/data/eucita/svn/conf/authz


修改文件内容:

[groups]

all = test1

admin = test

[/]

@admin = rw

* = rw

注:[groups]下面的组里可以有多个用户,用“,”隔开

六、导入SVN项目库(在这里使用的是迁移老的SVN库)

导出原170机器数据库

[root@server-170 ~]#svnadmin   dump /data/repository/svn     >svn.bak


svnadmin参数介绍:

参数介绍:

-r [--revision] :指定版本ARG(或X:Y范围)

--incremental   :以增量方式进行转存

--deltas        :在转存输出中使用差异

-q [--quiet]    :在标准错误输出不显示进度(仅错误)

导入SVN项目库

[root@server-170 ~]#svnadmin   load    /data/eucita/svn   < svn.bak


七、目录赋权

[root@server-180 ~]#chown -R apache.apache/data/eucita/
[root@server-180 ~]#chmod -R 755/data/eucita/

八、apache与SVN整合

 修改文件

[root@server-180 ~]# vim /etc/httpd/conf.d/subversion.conf


<Location /svn/>

DAV svn

SVNParentPath /data/eucita

AuthType Basic

AuthName "Eucita Svn"

AuthUserFile /data/eucita/svn/svn.passwd

AuthzSVNAccessFile "/data/eucita/svn/conf/authz"

Require valid-user

</Location>


重启apache服务器

[root@server-180 ~]#service httpd restart


完成!

 

访问URL: http://192.168.1.180/svn/ 验证成功

转贴请注明出处:http://blog.csdn.net/chinese_tiger/article/details/7744822
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息