我有一个 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