Subversion 用的太多了,但如何自己建一个服务并使用?
安装
Fedora: yum install subversion
Ubuntu: sudo apt-get install subversion
创建仓库目录
sudo svnadmin create /usr/local/svn/wofs
增添用户
编辑文件 /usr/local/svn/wofs/conf/passwd 添加用户和密码,我这里添加如下语句:
caoyi = helloworldiridium0
sunlangping = sunlangping
以上两行,左边是用户名,右边是密码
访问权限控制——简单
编辑文件 /usr/local/svn/wofs/conf/svnserve.conf,加入如下内容
anon-access = none
password-db = passwd
事实上,以上两行内容原先的 svnserve.conf 的文本内容中已经有了,只不过处于被注释的状态,取消其注释即可。
更复杂点的分组,还需要修改 authz 文件的内容,参下面一节
访问权限控制——精细
按照上一节的描述设置后,客户端已经可以访问 SVN 了,只不过所有用户的权限都是一样的:对所有目录具有读写权限。如何限定某些用户只能访问某些目录呢?下面将解决这个问题。
authz-db = authz
的注释,使用 authz 验证规则。另外两项的内容同前一节。按人设置访问权限:
[/]
caoyi = rw
tianyu =
[/fortianyu]
tianyu = r
注:方括号中是需要设置访问权限的目录,接着就是具体的访问权限设置,如果值为空,表示不可访问。
按组控制访问权限:
# 将成员分成 wangda 和 tianyu 两组
[groups]
wangda = caoyi,zhongbo,mojiawei,lixiufeng,maleibo,jiangxianjun,lixin
tianyu = tianyu
# 通过 @ 符号标识组
[/]
@wangda = rw
@tianyu =
[/fortianyu]
@tianyu = r
启动 Subversion
以指定端口启动某代码仓库的服务:svnserve -d --listen-port 10010 -r /usr/local/share/svn/helloworld
如果不需要指定具体端口和具体某个代码仓库,直接执行 svnserve -d -r /usr/local/share/svn 就可以了。
如过不指定端口,它将使用3690作为默认端口。
客户端
这部分内容没啥记录的,Eclipse 自带的客户端,小乌龟(TortoiseSVN)等等都不错。如果客户端 OS 是 Linux,除了用 Eclipse 带的,再就用命令行吧。
1. 小乌龟的文本比对工具不咋的,可以设置使用其他第三方的比对工具,如下图设置 BCompare 为文本比对工具:
2. 用小乌龟,当本地文件和服务器有冲突时,如何用服务器的文件替换本地文件? 使用右键菜单 TortoiseSVN -> Revert...
3. 用小乌龟,如何修改 SVN 服务器地址?小乌龟右键菜单 TortoiseSVN -> Reloacate..
参考