8

目前我们有多个项目的存储库。我正在对其进行重组,以便我们可以为每个项目提供一个 SVN 存储库。

我一直在成功地关注http://www.yolinux.com/TUTORIALS/SubversionRepositoryDataTransfer.html但遇到了问题。

在新的存储库中,我添加了我的主干、分支和标签目录。我他们试图将文件从根目录移到主干目录中。我能够成功添加这些文件夹。问题是当我尝试将文件移动到主干目录时。专门将文件添加到 ./trunk 级别似乎最失败:

Commit failed (details follow):
Could not open the requested SVN filesystem
Could not open the requested SVN filesystem

查看我的 apache 日志,我在错误文件中看到了这一点:

[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] (20014)Internal error: Can't open file '/var/www/vhosts/site.com/subdomains/repo/error_docs/format': No such file or directory
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not fetch resource information.  [500, #0]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] (20014)Internal error: Can't open file '/var/www/vhosts/site.com/subdomains/repo/error_docs/format': No such file or directory
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not fetch resource information.  [500, #0]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 10 18:30:00 2012] [error] [client 173.0.0.1] Could not open the requested SVN filesystem  [500, #2]

我不确定它为什么要在我的 error_docs 目录中寻找格式。该目录存在,但它没有任何命名格式。

我的 repo 的权限与工作功能 repo 相同。所以虽然它看起来像一个权限错误,但我看不到我的设置失败的地方

drwxr-xr-x 7 apache apache       4096 Aug 10 17:41 repo

drwxr-xr-x 2 apache apache 4096 Aug 10 17:41 conf
drwxr-xr-x 3 apache apache 4096 Aug 10 17:41 dav
drwxr-sr-x 6 apache apache 4096 Aug 10 19:05 db
-r--r--r-- 1 apache apache    2 Aug 10 17:41 format
drwxr-xr-x 2 apache apache 4096 Aug 10 17:41 hooks
drwxr-xr-x 2 apache apache 4096 Aug 10 17:41 locks
-rw-r--r-- 1 apache apache  229 Aug 10 17:41 README.txt

编辑 - 08/17,更多地探讨这个问题。目前的设置是:

/pickles.com/
    /trunk
    /branches
    /tags
    pickles.com/
        /app
        /config
        etc...

我正在尝试使用 svn mv pickles.com/pickles.com/* pickles.com/trunk 将代码放在主干中。我在我的 apache 日志中收到与以下内容相同的错误:

==> access_log <==
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/pickles.com HTTP/1.1" 207 919 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/!svn/vcc/default HTTP/1.1" 207 606 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/!svn/bln/22 HTTP/1.1" 207 659 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:40 -0400] "PROPFIND /pickles.com/pickles.com HTTP/1.1" 207 919 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:41 -0400] "PROPFIND /pickles.com/!svn/vcc/default HTTP/1.1" 207 672 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:41 -0400] "PROPFIND /pickles.com/!svn/bc/22/pickles.com HTTP/1.1" 207 930 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"
120.0.0.1 - travisks [17/Aug/2012:12:40:41 -0400] "PROPFIND /pickles.com/trunk/pickles.com HTTP/1.1" 500 430 "-" "SVN/1.6.17 (r1128011) neon/0.28.6"

==> error_log <==
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] (20014)Internal error: Can't open file '/var/www/vhosts/publicsite.com/subdomains/svn/error_docs/format': No such file or directory
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] Could not fetch resource information.  [500, #0]
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] Could not open the requested SVN filesystem  [500, #2]
[Fri Aug 17 12:40:41 2012] [error] [client 120.0.0.1] Could not open the requested SVN filesystem  [500, #2]

我的svn配置:

<location />
  DAV svn
  SVNParentPath /var/www/vhosts/publicsite.com/subdomains/svn
  SVNListParentPath on

  AuthType Basic
  AuthName "svn.publicsite.com"
  AuthUserFile /var/www/vhosts/publicsite.com/subdomains/svn/conf/passwd

  Require valid-user
</location>

此相同配置适用于同一服务器上的另一个虚拟主机。所以我不希望成为问题。唯一的变化是 ParentPath 处于打开状态,这是一个存储库目录,而不是具有许多目录的单个存储库。

编辑 - Apache 将 SVN 重定向到 error_docs 目录

我更新了 conf 以充当单个存储库。

原本的:

SVNParentPath /var/www/vhosts/publicsite.com/subdomains/svn2
SVNListParentPath on

单一格式:

SVNPath /var/www/vhosts/publicsite.com/subdomains/svn2/pickles.com

一切都按预期运行。将其转回 SVNParentPath,我们又回到了同样的老问题。现在我知道它与 MediaTemple、Plesk 和子域设置有关。

回顾一下,我得到的错误是:

Internal error: Can't open file '/var/www/vhosts/publicsite.com/subdomains/svn2/error_docs/format

我在 error_docs 中创建了一个指向 ./subdomains/svn2/pickes.com/format 的符号链接,然后错误变为:

内部错误:打开数据库锁定文件时出错

这不是权限错误(在我显示的级别)。该项目与在单模式下工作的项目具有相同的权限集和用户。Apache 在某个地方默认使用 error_docs,因此 SVN 正在那里寻找它的目录,而不是 url 指定的存储库。

我检查了我找到的每个 httpd 文件,但找不到有关域应如何处理其子域的参考。

4

2 回答 2

2

这是一个被服务器配置混淆的 apache 问题(可能是 Plesk,但他们的论坛中没有人提供任何信息)。

问题是基本子域目录由 apache 提供服务,因此它也不能配置为通过 DAV SVN、svn faq提供服务

我能够通过将我的存储库移动到他们自己的专用目录来实施解决方案。然后我将位置标签更新为 svn 存储库,并成功地从 svn2.publicsite.com/repos 提供服务。

我的下一步是清理 url 中的冗余。我需要在 Plesk 之外创建一个单独的虚拟主机,这样我就可以支持 svn2.publicsite.com,或者我将重新定位目录,使其只是 publicisite.com/repos。

于 2012-08-23T19:12:19.243 回答
1

apache Location 指令中是否存在与 svn URL 冲突的名称冲突?

于 2012-08-12T19:24:21.473 回答