同一目录下托管着许多 SVN 存储库。我想将其中一个存储库 ( extra
) 公开给具有不同凭据的人员。
为什么以下 apache 配置对 不起作用,http://example.net/svn/extra
但对所有其他 SVN 存储库却起作用,例如http://example.net/svn/proj1
。
我尝试结帐时收到的错误http://example.net/svn/extra
是:
[error] [client x.x.x.x] (20014)Internal error: Can't open file '/home/trac/svn/svn/format': No such file or directory
[error] [client x.x.x.x] Could not fetch resource information. [500, #0]
[error] [client x.x.x.x] Could not open the requested SVN filesystem [500, #2]
[error] [client x.x.x.x] Could not open the requested SVN filesystem [500, #2]
请注意,颠覆试图访问/home/trac/
svn/svn
/format
。svn/svn
路从何处来?
这是配置:
<Location /svn/extra>
DAV svn
SVNPath /home/trac/svn/extra
AuthType Digest
AuthName "DevsExtra"
AuthUserFile /home/trac/devs-extra.digest
Require valid-user
</Location>
<Location /svn>
DAV svn
SVNParentPath /home/trac/svn/
AuthType Digest
AuthName "Devs"
AuthUserFile /home/trac/devs.digest
Require valid-user
</Location>
答案1
我建议不要使用多个 Apache 位置来处理身份验证,而是查看mod_authz_svn
Apache,因为它是为基于每个路径的访问控制而设计的。这样,您可以执行类似以下操作,让一部分开发人员访问该文件夹:
[groups]
devs-extra = bob, bill, jim, sally
[svn:/extra]
@devs-extra = rw
http://svnbook.red-bean.com/en/1.5/svn.serverconfig.pathbasedauthz.html