Mac OS svn配置使用以及冲突解决

在Mac系统中,由于Mac自带了svn服务器端和客户端的功能,所以我们可以不用装任何第三方软件就可以使用svn功能,不过需要做一些简单地配置

<h1 id="00">创建代码仓库</h1>
我首先在 ~目录下新建了一个svn目录
$mkdir svn
创建一个仓库,名称随意,我的名字是mycode
$svnadmin create ~/svn/mycode
目录结构应该如下所示:
$ ls svn/mycode/
README.txt conf/ db/ format hooks/ locks/

<h1 id="01">配置svn的用户权限</h1>
修改~/svn/mycode目录下的3个文件
1.打开svnserve.conf,将下列配置项的前面的#和空格去掉

anon-access = read
auth-access = write
password-db = passed
authz-db = author

anon-access = read代表匿名访问的时候是只读的,若改为anon-access = none代表禁止匿名访问,需要帐号密码才能访问

2.打开passwd,在[users]下面添加帐号和密码,比如:

[users]
benjamin=abc

账号是benjamin 密码是abc

3.打开authz,配置用户组和权限
我们可以将在passwd里添加的用户分配到不同的用户组里,以后的话,就可以对不同用户组设置不同的权限,没有必要对每个用户进行单独设置权限。在[groups]下面添加组名和用户名,多个用户之间用逗号(,)隔开

[groups]
mygroup = benjamin

说明benjamin是属于mygroup这个组的,接下来再进行权限配置。使用[/]代表svn服务器中的所有资源库

[/]
@mygroup = rw

上面的配置说明mygroup这个组中的所有用户对所有资源库都有读写(rw)权限,组名前面要用@
如果是用户名,不用加@,比如benjamin这个用户有读写权限

[/]
benjamin = rw

至于其他精细的权限控制,可以参考authz文件中的其他内容

4.启动svn服务器
前面配置了这么多,最关键还是看能否正常启动服务器,若启动不来,前面做再多工作也是徒劳。
在终端输入下列指令:
svnserve -d -r ~/svn
或者输入:
svnserve -d -r ~/svn/mycode
没有任何提示就说明启动成功了

5.关闭svn服务器
如果你想要关闭svn服务器,最有效的办法是打开实用工具里面的“活动监视器”


本人在配置好svn之后,想要下载文档,由于svn下载地址在国外,可能下载时间要一天,所以我直接把之前在windows系统下下载过得文档复制到Mac上来了。
我把它放在~/Documents/目录下
当我进入文档目录执行$ svn update后,提示了一个错误

svn: E155021: This client is too old to work with the working copy at
'/Users/piqiu1/Documents/7day-sysdoc' (format 31).
You need to get a newer Subversion client. For more details, see
http://subversion.apache.org/faq.html#working-copy-format-change

经过查找,发现需要更新svn客户端。

<h1 id="03">Mac OS升级svn客户端</h1>
$ svn --version
得到版本是1.7.20

进入mac osx svnclient 下载地址找到对应Mac版本和svn客户端版本下载,双击安装即可。
安装完成,最后一步提示添加svn地址到PATH变量中,然后在终端执行以下命令
$ cd ~
$ vi .bash_profile
在 .bash_profile文件中添加一行
export PATH=/opt/subversion/bin:$PATH
完后后更新下bash的环境变量
$ source .bash_profile
再次运行svn 命令
$ svn --version
得到版本是svn, version 1.9.2 (r1703836)

进入文档目录,再次执行$ svn update
一切显示正常,直到输入完服务器用户名和密码后,出现了一个新的冲突

Skipped '0.6 External Interfaces/09. Printshop/Welcome Package Loan SDFBRESVA - R5.0.xlsx' -- Node remains in conflict
At revision 1723.
Summary of conflicts:
Skipped paths: 1

最后执行以下命令解决冲突
$ svn revert '0.6 External Interfaces/09. Printshop/Welcome Package Loan SDFB RESVA - R5.0.xlsx'

推荐阅读更多精彩内容