2013-06-03 57 views
1

我正在使用Jenkins作为我们的构建服务器。我有多个项目使用相同的Mercurial(Hg)存储库,并且希望避免每个项目都克隆自己的本地回购库(由于回购比较大)。这应该可以通过Jenkins和Mercurial插件来实现。Jenkins项目指向相同的Mercurial回购不共享源码

在我的Mercurial插件配置中,我检查了“使用存储库缓存”和“使用存储库共享”。在每个项目中,列出了相同的储存库位置(通过IP地址指定的网络位置)。

但是,每个项目似乎仍希望创建存储库的克隆。有任何想法吗?

回答

0

在我们的设置中(使用Jenkins 1.506),我为每个构建定义了高级项目选项下的自定义工作空间,通常在[project]\repo,然后从那里构建到\build\文件夹。

如果您将每个Jenkins项目的自定义工作区定义为使用相同的回放源来指向相同的共享自定义工作区,它将重用已存在的内容。

我没有测试过这个,但我会假设在这个设置下,防止在同一工作目录中发生并发构建很重要。坏的事情会随之而来。

作为后续问题:您不希望每个构建都拥有自己的源代码的理由是什么?

+0

为了解决后续问题,我想它来自于希望尽可能简单并且还保留磁盘空间。克隆整个存储库占用大量的磁盘空间,并且当我为每个项目构建约8种不同的设置排列(x86或x64,VS2008或VS2010)时,这些排列趋于累加。所有这些排列依赖于完全相同的源代码,那么为什么要创建所有这些克隆呢?它可以工作,但占用大量的磁盘空间。 – Kohanz

+0

...它也延长了Jenkins构建过程,因为每次更改时都必须更新每个回购。我也目睹了Jenkins和hg可以挑剔,有时Hg插件决定克隆是必要的,而不是拉。当你不得不多次克隆时,需要很长时间。 – Kohanz

相关问题