- 在服务端创建资源仓库
- 资源仓库访问权限配置
- 给资源仓库添加用户
- 配置用户组及用户的权限
- 启动 SVN 服务器
- 停止 SVN 服务器
如果你安装了 Xcode 命令行工具,那么也会默认一并安装 SVN 命令行工具,这个默认安装的 SVN 版本是1.7.x。但是有的电脑并没有安装 Xcode 命令行工具,所以也就没有默认安装 SVN 命令行工具,那么你可以使用软件包管理工具 Homebrew 直接安装 SVN,如何安装详见《MacOS 如何安装 SVN 命令终端》。
假设你已经安装好了 SVN 命令行工具,那么我们开始搭建 SVN 服务端环境吧!
在服务端创建资源仓库我们先在文稿目录(~/Documents)下新建一个专门用于存放 SVN 数据的目录,例如我通常取名为 svn-repo
,后面我会把多个仓库目录都放在这里面。那么这个目录 svn-repo
就是 SVN 仓库的根目录。
在命令终端执行以下命令:
svnadmin create ~/Documents/svn-repo/qpw
注:建议按产品线来创建资源仓库,因为产品线下分多个项目,这样 SVN 服务端的『仓库-项目』结构正好与『产品线-项目』结构吻合了。
执行以上命令后就可以在目录 svn-repo
下面看到目录 qpw
,这就是一个仓库目录,其代表一个资源仓库,在我这里就是代表一个产品线。打开这个目录你可以看到以下的内容:
在 conf
目录存在以下配置文件: 我们先配置文件
svnserver.conf
,打开文件后将下图红色线框的 4 个配置项前面的“#” 和“空格”都去掉:
注:
anon-access = read
表示匿名访问的时候是只读的,即只能看仓库的数据,而改成none
,表示禁止匿名访问,即必须凭用户名和密码才能访问auth-access = write
表示通过身份认证的访问允许写,即可以在仓库中存放和修改数据password-db = passwd
用来指定一个存放用户名和密码的配置文件的路径,这里直接写passwd
,其实是指默认的相对路径./passwd
,系统在读取文件svnserver.conf
的数据时候,当前工作目录就是配置文件svnserver.conf
所在的目录,所以在svnserver.conf
文件内去指定另一个文件的路径,而该文件又是和svnserver.conf
在同一个目录下,就可以直接写文件名了authz-db = authz
用来指定一个权限配置文件的路径realm = path
认证空间名,版本库所在目录
打开目录 conf
下的文件 passwd
。在里面的 [users]
下面添加用户名和密码。
这里我配置了两个用户:dpqyw 和 com。
配置用户组及用户的权限我们打开目录 conf
下面的权限配置文件 authz,在里面的 [groups]
下面进行相关的配置。 如下图所示,我们在里面的 [groups]
下面新建一个用户组名为 group1
,在该用户组中有 dpqyw
和 com
两个用户。配置用户 dpdqw
的权限为对所有的资源仓库都有读写权限;而 group1
分组的用户只有对仓库 code1
有读写权限。
注:* =
表示其他用户无任何权限
在命令终端输入以下的任意一条命令都可以启动 SVN 服务器:
svnserve -d -r ~/Documents/svn-repo
svnserve -d -r ~/Documents/svn-repo/qpw
注:
-d
表示守护进程-r
表示在后台执行
打开“活动监视器” 。搜索 svn,将进程强制退出即可。
如果是在 Linux 系统下,可以输入下面的命令结束进程:
[root@localhost conf]# ps -ef|grep svnserve
root 4908 1 0 21:32 ? 00:00:00 svnserve -d -r /home/svn
root 4949 4822 0 22:05 pts/0 00:00:00 grep svnserve
[root@localhost conf]# kill -9 4908
或者
[root@localhost conf]# killall svnserve
或者
[root@htlwk0001host ~]# systemctl stop svnserve.service