我有一个由Debian 6.0控制的服务器。前段时间安装并配置了redmine,现在配置了svn服务器。
现在我正在尝试配置 redmine 以便能够查看 svn 存储库。URL 是: https://192.168.11.78/svn/bee
连接不起作用,日志显示此错误:
Error parsing svn output: #<REXML::ParseException: No close tag for /lists/list>
Google 说这是常见错误,可以通过永久接受服务器证书来修复,所以我照做了,但没有任何效果。仍然不起作用。
后来我又补充道
[global]
store-plaintext-passwords = no
在文件中
.subversion/servers
我为 root 和 www-data 用户执行了此操作(并接受了证书)。但没有任何帮助,redmine 中仍然出现错误
The entry or revision was not found in the repository.
我还能用它做什么?
答案1
据我回忆,这是 Redmine 的一个错误。它根本不能很好地处理自签名证书。
我最终按照说明进行操作这里并开始运行。简而言之,创建一个目录,用于将配置转储到 subversion,手动运行一次,然后编辑subversion_adapter.rb
redminelib/redmine/scm/adapters/
文件夹中的 ,以便将其指向该配置目录。我没有/无法完全遵循这些指示,我怀疑你也做不到,所以如果需要的话,请准备好脱离脚本。
答案2
除了 Peelman 所说的内容(因为我无法评论他的回答),对我来说,将 --config-dir 指令添加到 subversion_adapter.rb 文件是解决难题的最后一块拼图(我尝试了各种方式来运行 svn 并永久接受证书,但 redmine 找不到配置)。
为了澄清起见,完整的步骤如下:
1:修改Redmine的Subversion适配器脚本
# pico /usr/share/redmine/lib/redmine/scm/adapters/subversion_adapter.rb
使用命令行参数更改该文件中的行
从:str << " --no-auth-cache --non-interactive"
到:str << " --config-dir /usr/share/redmine/svn/.subversion --no-auth-cache --non-interactive"
2:确保 Subversion 客户端永久接受自签名证书
# sudo -u www-data svn --config-dir /usr/share/redmine/svn/.subversion list https://<my-repository-url>
出现提示时,选择永久接受证书的选项
要完成测试,请在出现提示时输入您的 subversion 凭据(在第一次输入 www-data 用户名时按 Enter 键,它会再次要求输入另一个用户名)。出现提示时,选择“否”以不加密保存您的凭据(此时已保存了 SSL 证书的必要接受)。您可以通过查看 /usr/share/redmine/svn/.subversion 目录来验证这一点,您将在其中找到一个名为 svn.ssl.server 的目录,其中包含一个新文件。
显然,如果您的 redmine 副本以 www-data 以外的用户身份运行,则应改为使用该用户执行 sudo。确保您执行 sudo 的用户具有在 redmine 目录内创建 /svn 目录所需的权限 - 否则,在运行 svn 客户端时,您可能无法选择(永久)接受证书。
3:重新启动Apache
就我而言,redmine 使用 apache 下的 mod_passenger 运行,因此需要重新启动 apache 才能使 redmine subversion 适配器脚本的更改生效(重新启动之前,我仍然在 redmine 中看到错误)。
# /etc/init.d/apache2 restart
4:在 Redmine 中浏览项目的 /repository
现在一切都应该正常工作