使用SVNSERVE托管Subversion服务器,配置文件等

时间:2009-04-26 18:26:54

标签: svn multiple-repositories

我有一台SVNSERVE服务器设置为托管多个存储库。

这里的简短问题

我的问题是这样的:我在存储库外的主目录中有authz,passwd和svnserve.conf,这似乎有效,因为这里的更改将给予或拒绝访问相关的存储库

但是,由于使用TeamCity时出错,我发现每个存储库也有自己的这些文件集,但其中的内容几乎完全是空的。我是否需要将主要配置文件的相关部分复制到每个存储库中?


暂定解决方案

好的,似乎我链接到下面的网页(this page)毕竟是正确的。通过编辑存储库本地svnserve.conf文件,并添加单行:

anon-access=none
然后它似乎工作。请注意,这就是我所做的一切。主要的,全局的,存储库外svnserve.conf文件和相关文件似乎仍然包含所有相关信息,因为此处的更改仍然授予或拒绝用户访问存储库,但添加该行使TeamCity停止抱怨。

再次删除该行后立即运行控制测试,只是为了查看它是否仍然失败。


这里的长篇故事

目录结构如下:

E:
 +-- Repositories
     +-- LVK
     +-- PrivateProjects
     +-- ExternalProjects
     +-- XYZ
     +-- etc.

现在,我在Repositories目录中,我有以下文件(文件内容如下):

svnserve.conf
authz
passwd

svnserve.conf看起来像这样:

[general]
password-db=passwd
authz-db=authz
realm=VKarlsen Subversion Server
anon-access=read
auth-access=write

authz看起来像这样:

[/]
lassevk=rw
*=r

[LVK:/]
lassevk=rw
*=r

[PresentationMode:/]
lassevk=rw
*=

和其他一些存储库等。

和passwd看起来像这样(显然不是正确的密码):

[users]
lassevk=MYSECRETPASSWORD

现在,我想知道的是TeamCity正在抱怨一条错误消息:“root svn://localhost/PrivateProjects/VS.NET/LVK_ReleaseScript'#2:svn:未授权打开编辑操作的根“。

我找到了这个页面here,但它确实说明你的svnserve.conf文件中有以下内容:

anon-access=none
但是,我确实在文件中有anon-access=read,但我的问题是:每个存储库还有一个conf子目录,其中包含与上面完全相同的文件,只是内容不同。实际上,除了将Realm值设置为与我的主svnserve.conf文件相同之外,文件都是完全空的。

这是对的吗?我是否需要将主svnserve.conf文件中的相关部分复制到每个存储库的配置文件中?

例如,这是LVK存储库下三个文件的内容:

AuthZ的:

[groups]

[/]

passwd中:

[users]

的svnserve.conf:

[general]
realm = VKarlsen Subversion Server

1 个答案:

答案 0 :(得分:1)

我一直认为你需要在每个存储库的svnserve.conf子目录中至少有conf/(因为SVN不会自动知道在其他地方查找它)。这是我在自己的存储库中使用的设置:每个都有自己的svnserve.conf副本,但只有一个全局passwdauthz,所有svnserve.conf文件用绝对路径表示。