最近在项目中需要用到SVN服务器方便与同事一起协同开发,在Windows环境中,我们一般使用TortoiseSVN来搭建svn环境。但是在mac环境中,由于Mac自带了svn的服务器端和客户端功能,因此我们可以直接使用Mac中自带的服务器。虽然说这省去了我们在Mac上搭建svn的繁琐操作,但我们仍需要对Mac自带的svn服务器做一定的配置。 话不多说,首先选择好一个存放svn的路径,新建一个svn目录,以后可以在svn目录下创建多个仓库目录,我们在桌面新建文件夹macSVN,当前里面什么也没有。打开终端,直接上代码:svnadmin create /Users/ios/Desktop/macSVN/project1
创建成功,打开我们新建的文件夹发现里面有东西了。
我们的配置就是针对conf里面的文件来的。打开conf发现里面有3个文件,分别是authz、passwd、svnserve.conf。
(1)首先用文本编辑打开svnserve.conf。找到下图中红色框中的内容,将前面的#和空格都去掉。这里解释一下这些是什么意思:anon-access = read 代表匿名访问时是只读,anon-access = write 是写,若我们设置为anon-access = none 则服务器是不允许匿名访问的。
![]()
(2)用文本编辑打开passwd,在[users]下面添加账号密码,这里我们添加三个账户。
(3)用文本编辑打开authz,配置用户组和权限。 我们可以将在passwd里添加的用户分配到不同的用户组里,以后的话,就可以对不同用户组设置不同的权限,没有必要对每个用户进行单独设置权限。 在[groups]下面添加组名和用户名,多个用户之间用逗号(,)隔开,这里我们把用户keyzhang、fuqinglin分组为group1,admin分组为group2.
使用[/]代表svn服务器中的所有资源库,下面这3行命令说明组group1中用户对svn服务器中所有资源有读写权限,group2中用户只有读的权限。这是针对组的权限设置,我们也可以单独对用户权限进行设置,方法跟组是一样的,只是不需要前面的@符号,至于其他精细的权限控制,可以参考authz文件中的其他内容。
(4)启动svn 在终端输入:svnserve -d -r /Users/ios/Desktop/macSVN/project1,没有任何提示就ok啦。
(5)关闭svn svn的关闭是非常简单的。在终端中输入ps aux | grep svn。可以看到当前目录下的svn进程pid是2077。然后kill -9 2077 杀死这个查找到的svn进程,这样svn就关闭了。
![]()
这样,在mac上配置svn服务器就完成了。至于选择什么样的svn客户端这个就有很多选择了,xcode上自带了svn客户端,不过不太好用,个人推荐使用cornerstone或者versions。