如何在 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,这就是一个仓库目录,其代表一个资源仓库,在我这里就是代表一个产品线。打开这个目录你可以看到以下的内容:
在这里插入图片描述

资源仓库访问权限配置

conf 目录存在以下配置文件:
在这里插入图片描述
我们先配置文件 svnserver.conf,打开文件后将下图红色线框的 4 个配置项前面的“#” 和“空格”都去掉:

在这里插入图片描述
注:

  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] 下面添加用户名和密码。
在这里插入图片描述

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

配置用户组及用户的权限

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

在这里插入图片描述

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

启动 SVN 服务器

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

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

注:

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

停止 SVN 服务器

打开“活动监视器” 。搜索 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333520.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 飞行记录器_Java 11功能– Java飞行记录器

java 飞行记录器在本文中,我们将看到如何利用Java Flight Recorder功能作为Java 11的一部分。之前,它是商业功能之一。 但是,对于带有JEP 328的 Java 11,它是开源的。 Java Flight Recorder将OS和JVM事件记录到一个文件中&#xf…

mysql管理节点_MySql节点管理安装步骤需要在SerA和SerB上各做一次

对大家推荐很好使用的MySql节点系统,像让大家对MySql节点系统有所了解,然后对MySql节点系统全面讲解介绍,希望对大家有用在向大家详细介绍MySql节点之前,首先让大家了解下MySql节点,然后全面介绍MySql节点,…

在java中补零的作用是什么_浅谈Java中的补零扩展和补符号位扩展

今天,魏屌出了一道题,题目如下:定义一个大头序的byte[]a{-1,-2,-3,-4},转换成short[]b.问b[0]和b[1]分别是多少?乍一看,这题不难,无非就是移位操作,再进行组合。但是呢?对…

arquillian_使用Arquillian(远程)测试OpenLiberty

arquillian听到许多好评后,我想我会尝试一下Open Liberty 。 在这篇文章中,我将讨论以下内容: 开放自由的设置 设置JDBC连接 设置Arquillian 测试REST端点 安装开放自由 在撰写本文时,我正在使用Open Liberty 18.0.0.1&…

Linux 命令之 pico -- 文本编辑器

没有时间整理,暂时参加此文:https://tool.lu/command/detail.html?namepico

delphi 获取java控件位置_delphi的IdFTP控件函数怎么调用

RootDir 要删除的根目录,一般情况下 RemoteDir 与 RootDir 相等}procedure TForm1.FTP_DeleteAllFiles(var idFTP : TIdFtp;RemoteDir,RootDir : string);label Files;vari,DirCount : integer;Temp : string;beginidFTP.ChangeDir(RemoteDir);if Pos(RootDir,idFT…

javafx查找子节点_JavaFX技巧29:使布局忽略不可见的节点

javafx查找子节点在我仍在Swing中实现UI的时候,我曾经是MigLayout的忠实拥护者(“一个布局管理者来统治所有这些,对吗Mikael?”)。 我真正喜欢的功能之一是当组件不可见时可以定义不同的行为。 MigLayout允许我保留现在…

SVN 仓库转换为 Git 仓库

没有时间整理,请暂时参考:http://www.178linux.com/21199

现在java编程用的框架_现在java编程用的框架

2怎样学习java掌握常用的API用法每一门成熟的编程语言都会向用户提供丰富的应用编程接口(Application programming Interface),也就是通常所说的API,熟练掌握这些API,无疑会极大的提高我们编码的效率,但是Java提供的API实在是太多…

jdk11 默认收集器_JDK 11:新的默认收集方法toArray(IntFunction)

jdk11 默认收集器“ JDK 11 Early Access发行说明 ”指示JDK 11的Early Access Build 20在Collection接口上包括一个新的默认方法 ,该方法 “允许将集合的元素转移到所需运行时类型的新创建的数组中”。 这个新的默认方法 [ Collection.toArray(IntFunct…

SVN 命令详解

文章目录在 SVN 服务端创建项目仓库,即资源仓库启动 SVN 服务器将客户端的源代码导入 SVN 版本库中从 SVN 服务器端检出代码到指定的客户端目录下从 SVN 版本控制器中导出指定版本的源代码到指定的客户端目录下更新指定版本的数据/回滚指定版本的数据/还原到指定版本…

java当前4中引用_Java的四种引用

1.强引用如果一个对象具有强引用,那就 类似于必不可少的生活用品,垃圾回收器绝不会回收它。当内存空间不足,Java虚拟机宁愿抛出OutOfMemoryError错误,使程序异常终止,也不会靠随意回收具有强引用的对象来解决内存不足问…

递归算法和迭代算法_Java中没有递归的二进制搜索–迭代算法

递归算法和迭代算法这周的任务是用Java实现二进制搜索 ,您需要编写迭代和递归二进制搜索算法 。 在计算机科学中,二进制搜索或半间隔搜索是一种分而治之的算法,用于在排序数组中定位项目的位置。 二进制搜索通过将输入值与数组的中间元素进行…

SVN 出错信息汇总/错误信息一览表

编号出错信息信息解读剖析及解决方案1svn: Server sent unexpected return value (500 Internal Server Error) in response to OPTIONS request for ‘http://svn.moon.ossxp.com/svn/test’svn: 服务器发送了意外的返回值(500 Internal Server Error),在响应 “OP…

c 应用程序开发框架_企业应用程序开发框架的分类

c 应用程序开发框架如果您使用Google“最佳Java框架”,那么您很可能会迷失本文 ,它对Java Enterprise世界中的情况进行了很好的概述。 但是,从我的角度来看,它缺少一件非常重要的事情–对上述框架进行分类。 让我们看看这个生态系…

java mapper sql_Slardar Sql Mapper Framework for Java( Java 持久层框架一枚~)

slardar是一个sql mapping框架,其大概使用方式类似mybatis,没有采用hibernate那种orm的方式是因为个人觉得这种方式需要大量的处理sql,每次操作对象都要进行依次sql解析比较繁琐;转而想到mybatis这种把sql逻辑交给用户的方式还是比…

Linux 命令之 rsync -- 远程数据同步工具

没有时间整理,暂时参考这里:https://tool.lu/command/detail.html?namersync

黑洞路由 黑洞mac_无效方法为行为黑洞

黑洞路由 黑洞mac如果“认为有害”的文章本身不被认为是有害的,则本帖标题为“认为有害的作废方法”。 哦,好了 无效方法在大多数面向对象的代码库中无处不在。 在运行时中某个地方发生可变状态或I / O的直接后果是,您可以包装函数编程狂热者…

docker容器运行mysql持久化_OS x下使用Docker 持久化Mysql 数据出现问题

初学Docker ,请见谅。系统: OS X 10.11.1 (15B42)运行docker工具:Docker Quickstart Terminal virtualbox 5.0.8docker 版本:Docker version 1.8.2, build 0a8c2e3镜像 docker imagesREPOSITORY TAG IMAGE ID …

Linux 命令之 rcp -- 远程文件复制

文章目录一、命令介绍一、命令介绍 rcp命令的英文是“remote file copy”,即远程文件复制,可以使在两台Linux主机之间的文件复制操作更简单。通过适当的配置,在两台Linux主机之间复制文件而无需输入密码,就像本地文件复制一样简单…