我在做一些其他提交/更新时从SVN检出了一个存储库(比如说foo)。我的服务器死了,我的结账时间不完整。精细。问题是当我回去访问foo存储库时,我无法做到。它只是永远挂起。
所以,我去了http://subversion.apache.org/faq.html#bdb-recovery并跑了svnadmin recover
。我收到一个错误,所以我最终不得不使用db_recover,命令说它已成功完成。
现在,当我尝试访问存储库时,我得到了:
svn: PROPFIND request failed on '/foo'
svn: PROPFIND of '/foo': 500 Internal Server Error (https://svn.foobar.com)
另外,如果我导航到https://svn.foobar.com/foo,我会看到:
<D:error>
<C:error/>
<m:human-readable errcode="160029">
Could not open the requested SVN filesystem
</m:human-readable>
</D:error>
有人有任何想法吗?
注意:所有其他存储库都有效。就是这个。
答案 0 :(得分:3)
您是否通常使用存储库(例如apache帐户)运行'svnadmin recover'?
如果不是原因可能是某些文件现在由运行'svnadmin recover'的用户拥有,而该用户无权更改存储库文件。
答案 1 :(得分:1)
我得到了这个propfind错误,因为电源耗尽我忘记重启svnserve和Apache实例=)
答案 2 :(得分:1)
如果您是通过HTTP(S)设置SVN服务器的人,那么可能只是Apache服务器说它不理解PROPFIND。
在我的情况下,当我在Apache HTTPD配置中设置'Location'时,就会发生这种情况,并指定它是SVN WebDAV实现(SVN mod是WebDAV的扩展):
<Location /svn>
SVNParentPath /data/scm/repositories/
SVNPathAuthz off
AuthType Basic
AuthName "xxxxx"
AuthBasicProvider ldap
AuthLDAPURL ldap://xxx.yy:389/DC=aaaa,DC=bbbb?sAMAccountName?sub
Require valid-user
</Location>
而不是:
<Location /svn>
DAV svn
SVNParentPath /data/scm/repositories/
SVNPathAuthz off
AuthType Basic
AuthName "xxxxx"
AuthBasicProvider ldap
AuthLDAPURL ldap://xxx.yy:389/DC=aaaa,DC=bbbb?sAMAccountName?sub
Require valid-user
</Location>
我发现它后似乎是一个逻辑上的错误,但是花了我很长时间才找到错误......
答案 3 :(得分:1)
有时安装的不同Java版本可能会导致Eclipse SVN插件(我的情况为Subversive 1.7)无效。
我使用的是JVM 1.6,但是我的环境路径指向了一个较新的版本(由于安装了Oracle Java Web Start等)。
所以我再次使用旧的Java 1.6版本,它运行良好。
答案 4 :(得分:0)
就我而言,我需要一个不同的协议:
svn co svn+ssh://svn.xyz.com/directory
答案 5 :(得分:0)
如果具体的错误消息是“文件的过早结束”...... httpd的error_log显示:
[error] PHP Parse error: syntax error, unexpected T_STRING in /var/www/repos/...
但没有语法错误。
似乎解释.php文件而不是被视为文本 - 显然与MIME类型配置有关...
嗯,答案很简单:
AddType text/plain .php
只需将其添加到您的虚拟主机配置文件中,apache2将停止在该存储库中解释PHP。 Source
答案 6 :(得分:0)
在我的情况下,我可以解决它将“提交到”值从“https://localserver/svn/project”更改为“file:/// F:/ Repositories / project”。
更改HTTPS端口后开始失败,因为我在localhost IIS中安装了证书,并且它与SVN Apache服务器冲突。