我有一台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
答案 0 :(得分:1)
我一直认为你需要在每个存储库的svnserve.conf
子目录中至少有conf/
(因为SVN不会自动知道在其他地方查找它)。这是我在自己的存储库中使用的设置:每个都有自己的svnserve.conf
副本,但只有一个全局passwd
和authz
,所有svnserve.conf
文件用绝对路径表示。