2013-06-03 53 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

相關問題