svn - Hudson 无法访问 Subversion(svn :connection refused by server)

标签 svn windows-vista hudson

在装有 Vista 32Bit SP2(已激活 UAC、已激活防火墙的 Kaspersky Security Suite)的 PC 上,我设置了 Subversion 服务器(使用 SlikSVN 安装程序 1.6.13)、Tomcat 7.0、Java 6u21 和 Hudson 1.386。我使用 Firefox 3.6 ("http://localhost:8080/hudson") 通过 http 接口(interface)访问 Hudson。我下载了一个简单的演示存储库并启动了 subversion 服务器,添加了存储库。当命令

"svn list svn://localhost/gameoflife/trunk"

在命令提示符下输入

,服务器将打印出列表。我也可以通过在 Windows 资源管理器中右键单击其文件夹来使用 TortoiseSVN 访问该存储库。一切似乎都设置正确。但以下两件事不起作用:

  1. 在浏览器中输入“svn://localhost/gameoflife/trunk”。浏览器请求他是否应该使用TortoiseSVN打开,但同意后,TortoiseSVN无法连接(“被服务器拒绝”)。

  2. 更重要的是,我提出问题的原因是 Hudson 无法连接到 SVN。构建日志显示“错误:无法 checkout svn://localhost/gameoflife/trunk”。项目配置提示存储库 URL“svn://localhost/gameoflife/trunk”无法访问(“svn:服务器拒绝连接”)并建议添加授权信息。但我还没有在svn服务器上设置用户或密码。我已将 Hudson Subversion 插件从 1.20 更新到 1.21,但这并没有改变任何东西。禁用防火墙并没有改变任何东西。

我很确定在设置构建服务器时我严格遵循了详细的分步说明,但由于我既不是 Subversion 也不是 Hudson 的专业人士,所以我现在陷入了困境。因此我的问题是:Hudson 无法访问 Subversion 的原因是什么?我怎样才能让它工作?

更新:我确保 Vista 的主机文件中有“127.0.0.1 localhost”(但即使输入 127.0.0.1 而不是 localhost,URL 也不起作用)。我检查了端口 3690 没有被防火墙阻止。我的错误消息没有说明它有身份验证错误,也没有说明服务器主动拒绝连接。这与输入不存在的 URL 时收到的错误消息相同。如果完全相同的 URL 在控制台提示符下不起作用,我会认为其中有拼写错误,但我仔细检查了几次。这可能是 Vista 的问题,但我仍然找不到解决方案。

更新 2:我越来越确信这一定是我的 Vista 系统(错误)配置方式的副作用。 Hudson 有效,Subversion 有效。但如果它们都在同一台机器上运行,它们将无法一起工作。我能够毫无问题地从 Hudson 内部访问远程 Subversion 服务器。但同一个 Hudson 无法在本地访问 Subversion。在类似配置的 Vista-PC 上进行设置时,我重现了“在本地无法协同工作”的行为(主要区别是这次使用 64 位版本以及 Avira 免费软件而不是卡巴斯基)。

我尝试将 Subversion 发行版更换为其他发行版 (VisualSVN-Server 2.1.4),并尝试使用 https 访问它。最初我似乎取得了进展,但现在当要从存储库检索文件时,由于握手错误而失败。

由于我无法找到问题的原因,所以我现在切换到不同的 CI-Build-Tool。尽管如此,还是感谢您投入时间来帮助我。

最佳答案

首先,您可以以 Hudson 用户(即运行 Hudson 服务器的用户)身份登录,看看该 Hudson 用户是否可以访问 subversion 数据库?

大约 90% 的情况下这会指出问题。这通常是一些小问题,例如错误的路径或错误的身份验证。如果您可以以 Hudson 用户身份从命令行进行 checkout 和构建,那么您应该能够通过 Hudson 来完成此操作。

我知道在 Windows 上,服务器进程可以生成一些无法从命令行登录的服务器用户,但您也可以指定真实用户也作为服务器进程。最好使用 Subversion 和 Hudson 来指定真实用户,这样您就可以在必要时进行命令行调试。

听起来您正在尝试通过 Web 浏览器浏览使用 svnserve 服务器的 Subversion 存储库。大多数网络浏览器无法正常处理 svn 协议(protocol)。

你应该做的是使用类似ViewVC的东西或Sventon用于在 Web 浏览器中浏览存储库。 Hudson 与这两个包配合得很好,并将其变更报告与这些包集成。单击文件名将显示构建中使用的版本与先前版本之间的差异。

ViewVC使用Python,Sventon是一个Java包。我更喜欢 Sventon,因为它不需要驻留在您的 Subversion 存储库服务器上。

关于svn - Hudson 无法访问 Subversion(svn :connection refused by server),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4297576/

相关文章:

svn 将项目移动到不同的文件夹

svn:E175002:收到致命警报:bad_record_mac netbeans

linux - svn存放项目代码在哪里?

c++ - 如何确定使用哪个 C/C++ 编译器?

c# - 在 C# 中将文件保存到应用程序数据

windows-vista - 哪个Vista版本最适合开发人员计算机?

java - 如何在 Jenkins 插件中将对象绑定(bind)到 URL

hudson - 将项目添加到 Jenkins 侧面板

java - 使用 Hudson 构建时保存 Git SHA1 类似于 CVS 的 CVS_BRANCH 标签

svndumptool 的正则表达式