多个存储库,单个设置

时间:2008-09-28 07:58:55

标签: windows svn

如果我使用多个存储库,所有存储库都位于单个根文件夹下,我该如何设置它们以便他们使用单个主svnconf / passwd文件进行设置但仍允许我如果需要,可以自定义每个?

这是在Windows上,但我想这个过程在其他系统上也是类似的。

更新:我正在使用svnserve作为服务。

3 个答案:

答案 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,您就会得到结果。