SVN 服务器端搭建
2013-6-9
一、 服务器安装
选择安装文件Setup-Subversion-1.6.6.msi,双击运行,根据提示选择安装路径。
二、 服务器验证
验证服务器是否搭建成功,进入命令行并切换到subversion的bin目录。输入如下命令:svn 或者svnadmin 只要有正确的提示即可。
三、 建立版本库
运行Subversion服务器,需要首先要建立一个版本库(Repository)。版本库可以看作是服务器上集中存放和管理数据的地方。
开始建立版本库。首先建立 E:\svn 空文件夹作为所有版本库的根目录。然后,进入命令行并切换到subversion的bin目录。输入如下命令:
svnadmin create E:\svn\repos1
此命令在 E:\svn 下建立一个版本库 repos1 。repos1 下面会自动生成一些文件夹和文件。
如果服务端同时装有客户端程序(TortoiseSVN),我们也可以使用 TortoiseSVN 图形化的完成这一步,先建立空目录 E:\svn\repos1 ,注意一定是要空的。然后在 repos1 文件夹上“右键->TortoiseSVN->Create Repository here...”,然后可以选择版本库模式,这里使用默认的FSFS即可,然后就创建了一系列文件夹和文件,效果同命令行建立的一样。
四、 开启服务
在命令行下执行命令:svnserve.exe -d –r E:\svn\repos1
svnserve 将会在端口 3690 等待请求svnserve 以守护进程方式运行,这样在手动终止之前不会退出。注意不要关闭命令行窗口,关闭窗口会把 svnserve 停止。
注意此命令使服务启动时指定单个库。
五、 设置用户
用文本编辑器打开E:\svn\repos1\conf目录,修改svnserve.conf:将:
# password-db = passwd
改为:
password-db = passwd
即去掉前面的 # 注释符,注意前面不能有空格。然后修改同目录的passwd文件,增加一个帐号:将:
[users]
# harry = harryssecret
# sally = sallyssecret
增加帐号:
[users]
#harry = harryssecret
#sally = sallyssecret
test = test
六、 设置权限
对于svn配置库中各个用户访问不同目录的权限需要进行如下设置,首先在svnserve.conf中,设置成如下:
[general]
password-db = passwd
anon-access = none
auth-access = write
authz-db = authz
具体解释如下:
首先,我们告诉 svnserve.exe,用户名与密码放在 passwd.conf 文件下。当然,你可以改成任意的有效文件名,比如默认的就是 passwd:
password-db = passwd
接下来这两行的意思,是说只允许经过验证的用户,方可访问代码库。那么哪些是“经过验证的”用户呢?噢,当然,就是前面说那些在 passwd 文件里面持有用户名密码的家伙。这两行的等号后面,目前只允许 read write none 三种值,你如果想实现一些特殊的值,比如说“read-once”之类的,建议你自己动手改源代码,反正它也是自由软件:
anon-access = none
auth-access = write
接下来就是最关键的一句呢,它告诉 svnserve.exe,项目目录访问权限的相关配置是放在 authz 文件里:
authz-db = authz
举例:版本库中有ACC和Test两个目录,我们有如下用户test1,test2,test3,用户名的密码与用户名相同,则在passwd文件中配置如下:
[users]
test1 = test1
test2 = test2
test3 = test3
在authz文件中配置如下
#以下是建立用户分组
[groups]
admin = test1
reader = test2
user = test3
#以下是对不同分组设定不同的操作权限,以下目录设定规则进限于本文档第四章的启动方式
#表示版本库根目录下管理员组具有读写权限,其他人员无任何权限
[/]
@admin=rw
*=
#表示版本库ACC目录下管理员组具有读写权限, reader组具有只读权限,其他人员无任何权限
[/ACC]
@admin=rw
@reader=r
*=
#表示版本库Test目录下reader组具有读写权限,其他人员无任何权限
[/Test]
@reader=rw
*=
七、 详细的参考资料见《windows_svn_svn权限设置手册》