表 3.1. 设置Apache的httpd.conf
|
设置 |
解释 |
|---|---|
|
<Location /svn> |
意思是Subversion版本库的URL是 |
|
DAV svn |
告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块。 |
|
SVNListParentPath on |
对于Subversion1.3或者更高版本,这个指示表示显示所有SVNParentPath下的版本库。 |
|
SVNParentPath D:\SVN |
告诉Subversion需要查看的版本库位于 |
|
AuthType Basic |
激活基本认证,就是用户名/密码 |
|
AuthName "Subversion repositories" |
用来说明何时弹出要求用户输入认证信息的认证对话框 |
|
AuthUserFile passwd |
指定使用的认证密码文件 |
|
AuthzSVNAccessFile |
位置Subversion版本库的访问控制文件的路径 |
|
Require valid-user |
指定只有输入了正确的用户/密码的用户可以访问URL |
但是那只是一个例子,对于Apache你有很多的选择。
-
如果你希望所有人可以读你的版本库,但是只有特定用户可以写,你可以修改下面几行
Require valid-user
to
<LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept>
-
使用
passwd可以整体的控制对版本库的访问,但是如果你希望精确的控制版本库目录访问,你可以修改需要下面几行#AuthzSVNAccessFile svnaccessfile
,并且创建Subversion的访问控制文件。Apache将会确保只有有效的用户可以访问你的
/svn目录,然后将用户名传递给Subversion的AuthzSVNAccessFile模块,这样就可以根据Subversion访问控制文件实现更细粒度的访问控制。请注意路径可以是repos:path或简单的path,如果你不指定特定的版本库,访问控制规则会应用到SVNParentPath下所有的版本库,使用的授权策略文件的格式将在第 3.1.6 节 “路径为基础的授权”描述。
3.1.5. 多版本库
如果你使用SVNParentPath指示,你就不必在每次添加新Subversion版本库时修改Apache的配置文件,只需要在第一个版本库所在的位置建立新的版本库就可以了。在我的公司,我可以使用SMB(普通的windows文件访问)直接访问服务器的文件夹,所以我直接在那里创建一个目录,运行TortoiseSVN命令
