以下记录结果均有作者本人亲自测试可用。操作系统为Linux-EulerOS
1.安装SVN服务
1.1首先确认当前服务器是否已有svn
svn --version
如未安装则会显示:
bash: svn: command not found
如已安装则显示:
1.2.安装svn
执行以下命令安装 yum install subversion
安装成功后切记再次调用 svn –version 命令,确认安装成功,如正确提示SVN版本号则安装陈宫
2.创建版本库
2.1创建版本库根文件夹
版本库位置可以自主确认,我这里安装在/home/payy/code下,请注意此处建立的是服务器普通文件夹,并非SVN项目库,可以理解为项目库的总文件夹或者项目库的根目录。
2.2创建svn项目库
作者这里已多个项目来演示,svn版本库必须使用svn自带的命令行创建。
创建项目版本库1:Microservice:svnadmin create /home/payy/code/Microservice
创建项目版本库2:TplUpFiles:svnadmin create /home/payy/code/TplUpFiles
创建完成后指定的 /home/payy/code/Microservice和/home/payy/code/TplUpFiles下会自动生成
conf,db,format,hooks,locks,Readme目录,其中重点关注conf目录及其下authz,hooks-env.tmpl,passwd,svnserve.conf四个文件,这是权限和授权的配置文件。
2.3配置/conf/svnserve.conf文件
svnserve.conf主要指定了版本库根目录位置,及授权和认证文件的配置文件地址
其中anon-access = none表示匿名用户无任何权限
auth-access = write表示认证用户有可写权限
realm = /home/payy/code 表示版本库根目录在 realm = /home/payy/code下
3.多版本项目下权限配置
3.1首先修改/home/payy/code/Microservice/conf下passwd
vi /home/payy/code/Microservice/conf/passwd
如下图在【users】下添加可使用svn的用户账号格式为:
account1 = password1
account2 = password2
其含义为:账户account1密码为password1 账户account2密码为password2
3.2 配置auth文件【重点】
首先修改/home/payy/code/Microservice/conf下auth
vi /home/payy/code/Microservice/conf/auth
3.1.1如下图:修改auth中【groups】下内容
其中admin=account1,account2 表示 账号account1,account2为管理员admin分组
其中dev=account3,account4 表示 账号account3,account4为开发人员dev分组
3.1.2如上图:修改auth中[/]下内容
[/]
@admin = rw
指的是 admin分组下所有人员对
版本库根目录有读写权限,一定注意这里/指的是版本库根目录而非创建版本库文件夹的根目录,及 admin分组下所有人可以访问
/home/payy/code/Microservice/**
3.1.3如上图:添加auth中[/]下内容
[/otherCodeRouter]
@dev = rw
* = r
指的是 dev 分组下所有人对
版本库根目录下
/otherCodeRouter/**有读写权限
* = r指定是 其他所有未指定人只有
版本库根目录下
/otherCodeRouter/**的只读权限
及 dev 分组下
所有人可以访问
/home/payy/code/Microservice/otherCodeRouter
如果 dev 分组下 人员访问/home/payy/code/Microservice/目录会提示 auth fail;
dev 分组下 人员访问/home/payy/code/Microservice/otherCodeRouter则正常
而admin 分组下 人员访问/home/payy/code/Microservice/下所有目录;
4.启动svn服务端
svnserve -d -r /home/payy/code
默认端口3690,启动成功后即可在客户端输入svn://ip;3690/Microservice/进行连接;如下图:
PS:在多项目下我们可以单独制定一个auth文件,然后其他版本库service.conf中的auth指向该文件地址即可实现多项目共用一个auth文件;同理passwd文件也可以这样。
后期将会逐步记录idea,ecplise下的初始项目版本管控以及如何将项目从git版本管控转到svn下