Linux搭建svn服务详细步骤(多项目管理)

一、安装

1、查看yum是否安装

在终端中输入yum即可如果已经安装,会显示yum的参数,如果没有安装,会提示yum未安装或无效命令(没安装的需先安装,这里不细说)

2、安装svn

yum -y install subversion

3、查看安装版本,检查安装是否成功

svnserve --version

4、查看安装位置

rpm -ql subversion

二、创建项目

1、创建用于存放版本库的目录(此目录为所有项目的根目录)

mkdir -p /usr/local/svnRepo

2、根据实际情况创建多个项目路径(这里我建多一层目录“svm”管理项目)

mkdir -p /usr/local/svnRepo/svn/project1

mkdir -p /usr/local/svnRepo/svn/project2

3、创建完后,每个版本库目录下会生成一些文件

Linux搭建svn服务详细步骤(多项目管理)

 

三、配置

1、配置版本库(对于每个版本库根据实际情况分别进行配置)

在每个版本库中的conf目录如下:

Linux搭建svn服务详细步骤(多项目管理)

其中

| - authz    权限控制文件
| - passwd    帐号密码文件
| - svnserve.conf    SVN服务配置文件

为了后续增加项目方便,创建公共的用户、权限配置文件,放到版本库公共路径/usr/local/svnRepo/conf下:

mkdir -p /usr/local/svnRepo/conf

复制authz、passwd文件到该目录,用于管理所有用户和权限。

2、配置账号

修改/usr/local/svnRepo/conf/passwd,添加用户,格式就是“用户名=密码”,如:

[users]
user1 = 123
user2 = 234
test = 345

3、配置权限

修改/usr/local/svnRepo/conf/authz文件,加入用户权限,如:

[groups]
developer = user1, user2

[svn/project1:/]
@developer = rw
* =

[svn/project2:/]
@developer = rw
test = r
* =

[groups]为分组管理,格式为:"组名=用户1,用户2...",方便按组分配权限
[svn/project1:/]为项目目录分配权限,“svn/project1”项目路径,这个路径是相对后面启动svn的路径而来的,“:/”表示这个项目的根目录,可以再细分目录设置权限,如:[svn/project1:/dev]
@developer为分组developer设置权限(组名前必须加@),test为单个用户设置权限
rw,分别代码读权限和写权限
特别注意最后要加上:

* =

表示除此之外的用户没有任何权限。

4、配置svnserve.conf

修改每个项目中conf路径下的svnserve.conf文件,对刚才公共文件的引用

anon-access = none #匿名用户不可读
auth-access = write #授权用户可写
password-db = /usr/local/svnRepo/conf/passwd #使用公共文件作为账号文件
authz-db = /usr/local/svnRepo/conf/authz #使用公共文件作为权限文件
realm = /usr/local/svnRepo/svn/project1 # 认证空间名,版本库所在目录

其他project做同样的修改。

四、启动svn服务

如果在一台服务器上同时启动多个项目版本库,那么启动路径必须是所有项目仓库的根路径,比如:

/usr/local/svnRepo/svn/project1
/usr/local/svnRepo/svn/project2

根路径就是:
/usr/local/svnRepo/

启动命令

svnserve -d -r  /usr/local/svnRepo/

这个启动路径就是客户端访问的起始点,可以理解为“svn://ip/”这样就访问到了这个路径/usr/local/svnRepo/
所以要访问project1的路径为:svn://ip/svn/project1
跟我们的目录相对应:/usr/local/svnRepo/svn/project1

如果后续需要增加项目,只需要在svn目录里面创建对应的项目,配置权限后即可访问,无需再重启svn服务

五、停止svn服务

killall svnserve

六、测试一下

Linux搭建svn服务详细步骤(多项目管理)

用svn客户端checkout,输入路径、账号密码即可

七、其他

svn默认端口为3690,如果访问不到,检查是否被防火墙拦截。
 

上一篇:SVN学习笔记


下一篇:Ubuntu使用svn