解析SVN输出出错¶
背景¶
Redmine是运行在Web服务器(Apache等)上的Rails应用程序。
Redmine在Web服务器上调用"svn"命令。
因此,您需要正确配置Web服务器进程的uid。
检查您的Web服务器uid。
(例如:"ps -ef","top")
简介¶
如果在添加仓库后,在“仓库”选项卡上收到“在仓库中没有找到条目或修订”的错误,请检查您的日志文件夹(例如:/var/log/redmine/default)中的production.log。
如果在production.log中找到此错误,那么当redmine用户运行svn命令时可能存在错误
解析SVN输出出错:#<REXML::ParseException: No close tag for /lists/list>
(Redmine仍然试图将svn命令的输出解析为XML,但错误不是按XML格式化的,因此出现解析错误。)
为了排除故障,尝试以redmine用户的身份运行命令以查看错误,例如
sudo -u www-data svn list --xml 'https://svn.server.address/reponame'@HEAD
(您可能需要将"www-data ALL=(ALL) NOPASSWD:ALL"添加到/etc/sudoers)
现在解决错误,以便每次命令都能获得干净的XML。
如果您每次需要接受服务器的证书时都会收到提示,则需要给redmine用户一个目录来存储svn配置。在某个位置创建一个目录,并确保redmine用户是所有者,例如
sudo mkdir /usr/share/redmine/svn
sudo chown www-data:www-data /usr/share/redmine/svn
在Redmine 1.1.x或更低版本中,
打开REDMINE_ROOT/lib/redmine/scm/adapters/subversion_adapter.rb并转到第27行
source:tags/1.1.3/lib/redmine/scm/adapters/subversion_adapter.rb#L27
并更改为
SVN_BIN = "svn"
例如,更改为
SVN_BIN = "svn --config-dir /usr/share/redmine/svn"
现在您应该能够永久接受证书。
如果您在测试svn list --xml URL
后收到“svn: 无法解析URL”的消息,请检查您安装的SVN客户端版本。较旧版本在处理包含空格的文件名时存在问题,更新到较新版本以修复此问题。
待办事项
在Redmine 1.2或更高版本中,此行已更改。
source:tags/1.2.3/lib/redmine/scm/adapters/subversion_adapter.rb#L35
关于Windows上的Bitnami Redmine安装的说明¶
Redmine服务器(对于版本> 2.0的默认值为Thin
)默认运行在System
账户下,并且这与SVN服务器的错误SSL证书不兼容。解决方案是将服务用户的进程账户更改为具有登录权限的服务用户,连接到SVN并永久接受该用户的证书。不要忘记更改两个在负载均衡中运行的Thin
或Mongrel
服务的用户。
议会接受错误SVN证书的另一个可能解决方案是使用psexec。以下命令显示了为系统用户账户打开的控制台,可以在其中发出svn命令并永久接受证书。
psexec -i -s cmd.exe
在scm\adapter\abstact_adapter.rb
中的Redmine代码应该捕获连接错误,并且不应该依赖于"No close tag for /lists/list>
"来通知我们这个问题。在开发环境中运行时,stderr被捕获在日志中,但在生产环境中并不很有用。
使用SSH与SVN一起使用时出现"SVN: 连接意外关闭"。
当你执行
sudo -u www-data svn list --xml 'svn+ssh://svn.server.address/reponame'@HEAD
并收到错误"SVN: 连接意外关闭",你可能需要在托管SVN仓库的机器上为用户www-data启用shell。
只需编辑/etc/passwd
并更改相应用户的条目,使其以/bin/bash
结尾,而不是/bin/false
或/sbin/nologin
。
这应该可以解决这个问题。
来源
https://redmine.ruby-lang.org.cn/boards/2/topics/11896
http://www.thinkplexx.com/learn/howto/scm/svn/fix-permanent-error-validating-server-certificate-problem-with-subversion
由Andrey Ivanov更新 6个月前 · 13次修订