无法使用Jenkins和Subversion 1.7?有解决方案吗?

4
我在使用Jenkins时遇到了新版Subversion 1.7的问题。公司有几个人升级到了新版,因此不能回退到旧版1.6的Subversion文件夹结构(除非他们提交所有更改、删除文件夹、卸载新版1.7并安装旧版1.6,再重新导出所有内容)。所以,考虑到我们要向前发展并使用Subversion 1.7的新功能,例如可以轻松使用修订号的外部文件,现在我在Jenkins中遇到了问题。
对于Jenkins,我可以使用SVNKIT 1.3.7插件,或者更新到1.3.9版本。如果我们查看SVNKIT的下载页面(http://svnkit.com/download.php),他们说1.3.7和1.3.9版本与Subversion 1.7不兼容。这个问题应该会在2012年3月左右解决。我的服务器需要尽快上线,所以我不能等一个月。

那么你建议我如何让用户使用Subversion 1.7,同时我仍然可以使用Jenkins。

我尝试了以下方法:

  • 更改服务器上使用的协议,使用SSLv3协议可以使Subversion工作但是导致Jenkins失败,而使用TLSv1和SSLv3会使Jenkins工作但是某些Subversion操作失败,因此没有积极的结果。
  • 更改Jenkins中使用的协议选项为SSLv3,在一些常见问题解答中提到默认情况下Jenkins使用TLSv1协议,但仍未取得积极的结果。(始终给出错误信息:无法访问https://svn.myrepos.com/svn/teamlib/package/ThePackages/trunk:svn: OPTIONS /svn/teamlib/package/ThePackages/trunk 失败(显示详细信息)(也许您需要输入凭据?))
  • 在另一个使用TLSv1和SSLv3的服务器上创建一个新的存储库,这个存储库将只包含到实际基本存储库的外部链接(例如,新存储库https://svn2.myrepos.com/svn/teamlib/testpackage/trunk仅包含到另一台服务器上的svn的外部链接,仅使用SSLv3 https://svn.myrepos.com/svn/teamlib/package/ThePackages/trunk)。

这是我接近成功的最新进展,因为Jenkins能够很好地构建所有内容,但似乎无法导出外部组件。(虽然我可以手动导出,但我需要Jenkins来完成这个任务)。

那么你有什么想法吗?

2个回答

3
我不确定我理解你的架构。即使存储库运行subversion 1.6.x,你的开发人员仍然可以在他们的开发机器(客户端)上继续使用1.7。据我所知,改进的外部支持是在1.7之前引入的,例如我们在1.6.x中使用了固定的外部文件。在我看来,与Jenkins的兼容性比在服务器上运行1.7的任何好处都更重要。
我们运行一个中央svn服务器,运行subversion 1.6.x(支持固定版本的外部文件),一些开发人员已经升级到在其开发机器上运行的subversion 1.7客户端。因为svn服务器正在运行1.6.x,所以Jenkins可以从我们的中央存储库中检出(包括检出外部文件)。我建议在Jenkins / SvnKit支持1.7之前,仍然使用1.6.x作为你的存储库。 Subversion 1.7 release notes说存储库格式没有更改,因此如果你已经升级,应该能够将存储库降级。
Subversion 1.7 服务器使用与 Subversion 1.6 相同的存储库格式。因此,在 1.6.x 和 1.7.x 服务器之间无缝升级和降级是可能的,而不需要更改磁盘上存储库的格式。(对于任何一对 1.x 和 1.y 服务器来说,这通常是不正确的,但在 1.6 和 1.7 的情况下却成立。)如果在服务器上启用了新的 1.7 功能(在钩子或服务器配置文件中),当然必须在恢复到 1.6 服务器之前将其禁用。

谢谢,我们会尝试将服务器更新到1.6版本并观察情况。 - wincrasher

0

您需要等待Jenkins的Subversion插件更新以支持Subversion 1.7。我不确定那会是什么时候。Hudson Subversion插件的升级开发目前正在进行中,应该会在下一个插件版本中提供。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接