2008-09-28 85 views
2

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

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

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

+0

您可能需要考虑在http://serverfault.com上发布此类服务器配置类型问题,而不是像堆栈溢出一样,服务器管理除外。 – jpierson 2009-12-08 16:03:24

+0

2008年,当我发布这个时,SO是城里唯一的游戏,它比系统管理员问题更像是一个开发人员问题。 – 2009-12-09 10:55:53

回答

2

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

1

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

如果你不使用svnserve,那么这可能不适用。

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> 

只要你使用相同的AuthUserFile每个启用SVN的位置,你会得到你的结果。