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

Tra*_*vis 8 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
Run Code Online (Sandbox Code Playgroud)

看看我的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]
Run Code Online (Sandbox Code Playgroud)

我不确定为什么它在我的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
Run Code Online (Sandbox Code Playgroud)

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

/pickles.com/
    /trunk
    /branches
    /tags
    pickles.com/
        /app
        /config
        etc...
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用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]
Run Code Online (Sandbox Code Playgroud)

我的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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

原本的:

SVNParentPath /var/www/vhosts/publicsite.com/subdomains/svn2
SVNListParentPath on
Run Code Online (Sandbox Code Playgroud)

单格式:

SVNPath /var/www/vhosts/publicsite.com/subdomains/svn2/pickles.com
Run Code Online (Sandbox Code Playgroud)

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

总结一下,我得到的错误是:

Internal error: Can't open file '/var/www/vhosts/publicsite.com/subdomains/svn2/error_docs/format
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Tra*_*vis 2

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

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

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

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