为什么Svn试图访问我的错误目录中的Format文件?

时间:2012-08-10 23:17:11

标签: svn

目前,我们拥有多个项目的存储库。我正在重组这个,所以我们可以为每个项目建立一个SVN存储库。

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

在新的存储库中,我添加了trunk,branches和tags目录。我尝试将文件从根目录移到trunk目录中。我能够成功添加这些文件夹。问题是当我尝试将文件移动到trunk目录时。特别是将文件添加到./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的权限与工作的功能回购相同。因此,虽然它看起来像权限错误我不知道我的设置失败

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将代码放在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,然后错误变为:

内部错误:打开db lockfile时出错

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

我已经检查了我找到的每个httpd文件,但找不到域应该如何处理它的子域的引用。

2 个答案:

答案 0 :(得分:2)

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

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

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

我的下一步是清理网址中的冗余。我需要在Plesk之外创建一个单独的vhost,这样我就可以支持svn2.publicsite.com了,或者我将重新定位目录,所以它只是publicisite.com/repos。

答案 1 :(得分:1)

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