1

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

简短的问题在这里

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

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


暂定解决方案

好的,看来我在下面链接到的网页(此页面)毕竟是正确的。通过编辑存储库本地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: Not authorized to open root编辑操作”。

我在这里找到了这个页面,但它说要确保你的 svnserve.conf 文件中有以下内容:

anon-access=none

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

它是否正确?我是否需要将主 svnserve.conf 文件中的相关点点滴滴复制到每个存储库的配置文件中?

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

授权:

[groups]

[/]

密码:

[users]

svnserve.conf:

[general]
realm = VKarlsen Subversion Server
4

1 回答 1

1

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

于 2009-04-26T20:18:42.347 回答