如果我使用多个存储库,所有存储库都位于单个根文件夹下,我该如何设置它们以便他们使用单个主svnconf
/ passwd
文件进行设置但仍允许我如果需要,可以自定义每个?
这是在Windows上,但我想这个过程在其他系统上也是类似的。
更新:我正在使用svnserve作为服务。
答案 0 :(得分:2)
svnserve
不适用于大型部署。如果您需要更细粒度的权限或集成等,请使用Web服务器(如Apache)。
答案 1 :(得分:1)
如果您使用的是svnserve,则每个存储库中的conf/svnserve.conf
文件都有一个配置项,用于命名密码数据库文件。这是password-db
部分中的[general]
项,只需将它们全部设置为指向同一文件。
如果你没有使用svnserve,那么这可能不适用。
答案 2 :(得分:1)
根据您想要实现的目标以及您正在使用的设置,有不同的方法。
<强>的svnserve 强>
如果您使用svnserve
,则每个存储库中都有一个名为svnserve.conf
的文件,您可以在其中定义正在使用的密码文件。您可以在服务器根目录中放置一个密码文件,并将所有存储库指向那里。
看起来像这样:
c:\svn\passwd
c:\svn\project1\conf\svnserve.conf
c:\svn\project2\conf\svnserve.conf
然后在svnserve.conf
个文件中添加
[general]
password-db = c:\svn\passwd
应该完成这个技巧,并且仍然会为每个存储库保留不同的ACL(authz
文件)
<强>的Apache 强>
这有点复杂,但
<Location /project1>
DAV svn
SVNPath C:/Repositories/project1
AuthType Basic
AuthName "Subversion Project1 repository"
AuthUserFile c:/etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile c:/etc/svn-acl
</Location>
<Location /project2>
DAV svn
SVNPath C:/Repositories/project2
AuthType Basic
AuthName "Subversion Project2 repository"
AuthUserFile c:/etc/svn-auth-file
Require valid-user
AuthzSVNAccessFile c:/etc/svn-acl
</Location>
只要您为每个启用SVN的位置使用相同的authuserfile,您就会得到结果。