如何在 MacOS 环境下搭建 SVN 服务端环境

文章目录

  • 在服务端创建资源仓库
  • 资源仓库访问权限配置
  • 给资源仓库添加用户
  • 配置用户组及用户的权限
  • 启动 SVN 服务器
  • 停止 SVN 服务器

SVN 是一个使用十分广泛的开放源代码的版本控制系统。在 Windows 系统下,我们一般使用 TortoiseSVN 来搭建 SVN 环境。而 MacOS 系统我们该如何搭建 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,这就是一个仓库目录,其代表一个资源仓库,在我这里就是代表一个产品线。打开这个目录你可以看到以下的内容:
如何在 MacOS 环境下搭建 SVN 服务端环境_第1张图片

资源仓库访问权限配置

conf 目录存在以下配置文件:
如何在 MacOS 环境下搭建 SVN 服务端环境_第2张图片
我们先配置文件 svnserver.conf,打开文件后将下图红色线框的 4 个配置项前面的“#” 和“空格”都去掉:

如何在 MacOS 环境下搭建 SVN 服务端环境_第3张图片
注:

  1. anon-access = read 表示匿名访问的时候是只读的,即只能看仓库的数据,而改成 none,表示禁止匿名访问,即必须凭用户名和密码才能访问
  2. auth-access = write 表示通过身份认证的访问允许写,即可以在仓库中存放和修改数据
  3. password-db = passwd 用来指定一个存放用户名和密码的配置文件的路径,这里直接写 passwd,其实是指默认的相对路径 ./passwd,系统在读取文件 svnserver.conf 的数据时候,当前工作目录就是配置文件 svnserver.conf 所在的目录,所以在 svnserver.conf 文件内去指定另一个文件的路径,而该文件又是和 svnserver.conf 在同一个目录下,就可以直接写文件名了
  4. authz-db = authz 用来指定一个权限配置文件的路径
  5. realm = path 认证空间名,版本库所在目录

给资源仓库添加用户

打开目录 conf 下的文件 passwd。在里面的 [users] 下面添加用户名和密码。
如何在 MacOS 环境下搭建 SVN 服务端环境_第4张图片

这里我配置了两个用户:dpqyw 和 com。

配置用户组及用户的权限

我们打开目录 conf 下面的权限配置文件 authz,在里面的 [groups] 下面进行相关的配置。
如下图所示,我们在里面的 [groups] 下面新建一个用户组名为 group1,在该用户组中有 dpqywcom 两个用户。配置用户 dpdqw 的权限为对所有的资源仓库都有读写权限;而 group1 分组的用户只有对仓库 code1 有读写权限。

如何在 MacOS 环境下搭建 SVN 服务端环境_第5张图片

注:* = 表示其他用户无任何权限

启动 SVN 服务器

在命令终端输入以下的任意一条命令都可以启动 SVN 服务器:

svnserve -d -r ~/Documents/svn-repo
svnserve -d -r ~/Documents/svn-repo/qpw

注:

  1. -d 表示守护进程
  2. -r 表示在后台执行

停止 SVN 服务器

打开“活动监视器” 。搜索 svn,将进程强制退出即可。
如何在 MacOS 环境下搭建 SVN 服务端环境_第6张图片

如果是在 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

你可能感兴趣的:(svn,版本控制,版本管理,subversion)