如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)

前言

一、搭建本地svn服务器

1.建立代码库

2.配置文件修改

3.启动本地svn服务

二、搭建过程中常见问题

如果Mac os升级到10.0以上,自带的svn不支持了怎么办

三、mac本地使用svn软件管理svn库

cornerstone3安装

四、使用Cornerstone会存在的问题

Mac打开应用提示已损坏怎么办?

配置svn server注意事项

SVN不能显示日志log

关于svn服务器文件具体存放路径问题

四、如何用其他设备远程连接到这台Mac搭建的本地svn服务器

如何远程连接这台svn服务器

常见报错问题

总结​​​​​​​


前言

由于开发工作进行到越来越后面,本地计算机储存了大量的历史版本文件数据,给本地电脑产生了很大的存储压力,同时为了规范本地文件的存放和历史版本管理,因此产生了将办公室闲置的一台mac搭建成svn服务器进行各种资料的版本管理工作。本篇文章将详细的讲述从搭建svn服务到远程登录svn服务进行版本管理的全流程。


一、搭建本地svn服务器

Mac是自带svn服务器的,我们需要开启svn的服务器,相应的也是需要建立svn的代码库。(注意:如果你的mac已经升级到Catalina(10.15.*)及以上,那么自带的svn已经不支持使用了,所以针对这种情况,下面章节会详细说明)

1.建立代码库

 //创建一个文件夹,并将文件夹设置为svn的代码库
svnadmin create /Users/Mac/svn/你创建的文件夹              

注意:不能在“/用户名/别的文件夹”下面建立“/svn”,否则localhost会识别不出来,在“/用户名下”建立“/svn”,再在“/svn”下建立svn库,就可以识别出来了。

2.配置文件修改

在finder中打开上面的路径,我们可以看到其中生成了一些文件,我们需要配置conf文件夹下的svnserve.conf、passwd、authz三个文件。(注意:可以不需要在终端用命令编辑,直接用文本编辑器打开这三个文件即可)

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第1张图片

配置svnserve.conf :

将下图红色框框里面的内容前的#号去掉即可!(注意:其中anon-access = read最好改为anon-access = none;前者表示匿名只读访问,后者表示禁止匿名访问,只有输入了账号密码才可以)

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第2张图片

配置 passwd:

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第3张图片

用户名aaa,密码123456

配置 authz

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第4张图片

1⃣️users = aaa,bbb表示创建了一个用户组,此用户组包含有aaa和bbb两个用户
2⃣️[/]表示授权的目录路径,这里是根目录
3⃣️users = rw表示给users用户组读写的权限,r表示读,w表示写,如果是给单独用户授权表示为:aaa = rw

3.启动本地svn服务

svnserve -d -r /Users/Mac/svn

注意:路径mac为你自己的电脑用户名

没有报错就是启动成功,可以在监控器中看到该服务进程

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第5张图片

二、搭建过程中常见问题

如果Mac os升级到10.0以上,自带的svn不支持了怎么办

问题描述:运行svn指令报错信息如下:
svn: error: The subversion command line tools are no longer provided by Xcode

解决方法:
使用HomeBrew来安装SubVersions
命令行 brew install subversion

结果:

你会发现安装svn有可能会失败,因为软件源的问题,导致安装失败,建议使用国内镜像源即可。

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

运行上述命令之后,选择1 ,5 选项,中科院镜像源。

brew install svn

运行上述命令之后,安装svn完成,查看 svn --version 如果还是报错就用下面的命令修复

sudo chown -R $(whoami) $(brew --prefix)/*

运行上述命令,如果还没有报错,继续执行brew install svn进行安装。关于Homebrew国内如何自动安装,可以看知乎专栏文章。

三、mac本地使用svn软件管理svn库

我们在Windows系统中经常使用的tortoise svn是不支持mac系统的,这里推荐两款mac版本的svn客户端,snail svn和cornerstone3 mac版,这里比较推荐后者,前者精简版才是免费的,但是功能不全面,不过界面是中文,后者功能全面一些,使用更加方便,不过是英文版。

cornerstone3安装

下载链接,密码:lz93
下载完成之后进行安装,如果无法下载或者安装存在问题可以用链接2和链接3下载安装。
打开cornerstone,具体使用方法很简单这里就不讲了,在链接2和链接3中均有详细介绍该软件的使用方法。

四、使用Cornerstone会存在的问题

Mac打开应用提示已损坏怎么办?

我们在使用mac系统安装或下载一些软件应用时,偶尔会出现“XXX软件已损坏”的情况,下面提供解决流程:

1⃣️MacOS 10.15及以上新系统出现应用提示损坏打不开的解决方法:

      打开终端(屏幕下方Dock栏中的的小火箭图标“启动台”——“其他”——打开“终端”),在终端中粘贴下面命令: sudo xattr -r -d com.apple.quarantine (* quarantine 后面有个空格)

      打开屏幕下方的“访达”—选择左侧边栏的“应用程序”,再找到你需要处理的软件拖拽到命令后面,按回车后输入密码执行,举个例子,比如需要打开sketch应用的命令是:

sudo xattr -r -d com.apple.quarantine /Applications/sketch.app/

2⃣️新的系统为了加强安全机制,默认不允许用户自行下载安装应用程序,只能从Mac App Store里安装应用。那么怎么解决呢?首先, 打开终端(屏幕下方Dock栏中的的小火箭图标“启动台”——“其他”——打开“终端”),然后,输入代码:sudo spctl --master-disable(*master前面为两个短横线)注意红框处是空格。按回车输入自己电脑的密码,按下回车即可。

3⃣️打开系统偏好设置 ,点击安全性与隐私,如果显示任何来源,则流程完成。

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第6张图片

4⃣️如果出现类似“打不开“xxxx”,因为它来自身份不明的开发者”的情况,还可以,在“系统偏好设置—安全性与隐私—通用—允许从以下位置下载的应用”选择“仍要打开”,让系统同意应用运行即可。

配置svn server注意事项

点击add repository,选择svn server并填写如下图的内容:
Server:本地服务器填写localhost,局域网写ip地址,例如:192.168.12.123

注意:不能在“/用户名/别的文件夹”下面建立“/svn”,否则localhost会识别不出来,在“/用户名下”建立“/svn”,再在“/svn”下建立svn库,就可以识别出来了。
respository path:写“/svn/”后面的内容(注意:是svn后面的目录)
最下面写在passwd中配置过得密码,最后add就好了,

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第7张图片

SVN不能显示日志log

现象:Cornerstone SVN使用起来都正常,就是不能显示log日志,报错“could not contact repository to read the latest log entries”。(如果按照本篇文章从头到尾操作,这里就不会出现这种情况。)

解决:把svnserve.conf里的anon-access = read改成anon-access = none,或者新增anon-access = none,都可以。= read 表示匿名访问的时候是只读的;= none 表示需要账户和密码才能访问。

关于svn服务器文件具体存放路径问题

SVN服务器版本库有两种格式:FSFS和BDB
把文件上传到SVN版本库后,上传的文件不再以文件原来的格式存储,而是被svn以它自定义的格式压缩成版本库数据,存放在版本库中。
如果是FSFS格式,这些数据存放在版本库的db目录中,里面的revs和revprops分别存放着每次提交的差异数据和日志等信息。

目前用的最多的是FSFS方式,这种方式的话,一般是存储在\db\revs文件夹下,里面有一堆以版本号命名的文件,如:0、1、2、3、4......,那个就是了。

svn先把0版本的状态压缩成1个文件,然后每次版本更新时就针对变动的部分做一个压缩文件,每次都是增加一个增量包,最后在服务器上能看到文件名为从0开始到最终版本的一系列文件。

四、如何用其他设备远程连接到这台Mac搭建的本地svn服务器

如何远程连接这台svn服务器

进行到这里,最后我们来讲一下怎么通过其他设备通过svn工具,远程链接到这台Mac svn服务器并且达到资源文件版本管理的工作。

先决条件:Mac和我们使用的其他设备必须在同一个局域网下。如果不在同一个局域网之下,就需要用到其他手段实现外网到内网的穿透,以达到外网也可以访问处于局域网中的这台Mac服务器。(内网穿透工具推荐:小米球和echosite,这部分内容可以看我相关文章或者自行百度)

查看这台Mac svn服务器的局域网IP:ifconfig

如何用mac搭建本地svn服务器(如何将mac变成版本管理服务器)_第8张图片

其他设备:其他设备上的svn工具配置好IP和路径,输入账号密码就可以连上这台svn服务器啦。

常见报错问题

我自己在windows设备上装的svn工具是TortoiseSVN,在正常的配置ip和路径,输入账号密码之后,报错:由于目标机器积极拒绝,无法连接。

这种情况存在两种原因:

1⃣️远程svn服务未启动。我们可以在这台mac设备的活动监视器里面查看svn服务是否还存在。

2⃣️svn仓库路径搞错了。可以在svn下建立很多仓库:

建立test仓库,访问的时候:svn://localhost/test

建立oa,则访问的时候 svn://localhost/oa


总结

这篇文章到这里就结束了,针对利用mac设备搭建svn服务器需要注意的一系列问题应该都列出来了,仅供大家学习参考。

你可能感兴趣的:(工具安装类,开发相关问题,服务器,svn,macos,cornerstone,snail,svn)