一、安装
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、创建完后,每个版本库目录下会生成一些文件
三、配置
1、配置版本库(对于每个版本库根据实际情况分别进行配置)
在每个版本库中的conf目录如下:
其中
| - 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
六、测试一下
用svn客户端checkout,输入路径、账号密码即可
七、其他
svn默认端口为3690,如果访问不到,检查是否被防火墙拦截。