多个存储库,单个设置

时间:2020-03-06 14:50:31  来源:igfitidea点击:

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

这是在Windows上,但是我想该过程在其他系统上将是相似的。

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

解决方案

如果使用的是svnserve,则每个存储库中的conf / svnserve.conf文件都有一个配置项,该配置项命名密码数据库文件。这是[general]部分中的password-db项,只需将它们全部设置为指向同一文件即可。

如果我们不使用svnserve,则可能不适用。

svnserve不适用于大型部署。如果我们需要更多细粒度的权限或者集成等,请使用Web服务器(如Apache)。

可以使用不同的方法,具体取决于我们要实现的目标和所使用的设置。

保留

如果使用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"文件)

阿帕奇

有点复杂,但是

<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,就可以得到结果。