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

Linux下搭建svn服务器(转)

2014-11-03 11:36 253 查看
原文地址:http://blog.163.com/longsu2010@yeah/blog/static/173612348201202114212933/
安装步骤如下:
1、yum install subversion

2、输入rpm -ql subversion查看安装位置,如下图:



我们知道svn在bin目录下生成了几个二进制文件。
输入 svn --help可以查看svn的使用方法,如下图。



3、创建svn版本库目录
mkdir -p /var/svn/svnrepos

4、创建版本库
svnadmin create /var/svn/svnrepos
执行了这个命令之后会在/var/svn/svnrepos目录下生成如下这些文件



5、进入conf目录(该svn版本库配置文件)
authz文件是权限控制文件
passwd是帐号密码文件
svnserve.conf SVN服务配置文件

6、设置帐号密码
vi passwd
在[users]块中添加用户和密码,格式:帐号=密码,如dan=dan

7、设置权限
vi authz
在末尾添加如下代码:
[/]
dan=rw
w=r
意思是版本库的根目录dan对其有读写权限,w只有读权限。

8、修改svnserve.conf文件
vi svnserve.conf
打开下面的几个注释:
anon-access = read #匿名用户可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /var/svn/svnrepos # 认证空间名,版本库所在目录

9、启动svn版本库
svnserve -d -r /var/svn/svnrepos

10、在windows上测试
新建一个测试文件夹,在该文件夹下右键选择 SVN checkout如下图(要事先安装TortoiseSVN):



填写SVN的地址,如下图:



输入密码,如下图:



与apache搭配,web管理
vi /etc/httpd/conf/httpd.conf
在文件末尾添加

<Location /svn>
DAV svn
SVNPath /home/svn
AuthType Basic
AuthName "Welcom! ^_^"
AuthUserFile /home/svn/conf/webpasswd
AuthzSVNAccessFile /home/svn/conf/authz
Require valid-user
</Location>

这时候重启apache会提示Unknown DAV provider: svn

所以在安装一下mod_dav_svn,命令yum install mod_dav_svn

因为http访问是采用的加密方式,而svn记录的为明文密码,所以需要加密一下

cd /home/svn/conf/

/usr/bin/htpasswd -bc webpasswd 用户名 密码

重启apache

多项目管理

其实就是新建1个目录,然后再svnadmin create创建多个仓库,最后将这个目录svnserve -d -r上去。这些仓库conf配置文件指向同一个authz和passwd就可以了,结束。

1. 服务器的确定

2. 配置管理工具的确定(SVN)

3. 建版本库的根目录,如下图所示,svnroot根目录下有project1和project2两个库



4. 创建第一个项目project1,命令:svnadmin create E:\svnroot\project1

5. 创建第二个项目project2,命令:svnadmin create E:\svnroot\project2

6. 为了便于管理,将所有版本库的密码和权限设置在同一个文件下面,操作步骤如下:

6.1 取出project1下面conf文件夹下的authz和passwd两个文件到svnroot根目录下面

6.2 修改每个版本库目录conf文件夹下面的svnserve.conf文件, 将

# anon-access = read ,#auth-access = write ,# password-db = passwd,#authz-db = authz 修改为:

anon-access = none ,auth-access= write,password-db = ../../passwd,authz-db = ../../authz

(password-db = ../../passwd,authz-db = ../../authz代表相对路径而非绝对路径)

7. 定义一下几个角色用来测试

7.1 配置管理员(svnadmin),用来管理整个库

7.2 项目经理(manage),用来相关管理文档

7.3 开发人员 (dev),测试开发是否正常

8. 下面添加角色

打开svnroot目录下的passwd文件,创建方法是在[user]下面添加 username = passwd,记得“=”前后的空格,如下图:(svnadmin控制所有项目,统一管理)



9. 为角色分配权限:假设(quxin是project1的项目经理,huzhixin是project2的项目经理,dev1、dev2是project1的开发人员,dev3、dev4是project2的开发人员,test1是project1的测试人员,test2是project2的测试人员)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: