哈德森的git的插件,效果很好。但是,構建腳本必須更新存儲庫中文件的版本號,提交併推送回存儲庫。Hudson無限循環輪詢Git倉庫中的更改?
當Hudson輪詢旁邊檢查更改時,它會進入一個無限循環,因爲它認爲提交作爲「更改」再次構建,提交更改,所以它再次構建,然後它提交另一個更改等。 ..你明白了。
我停止了,跑在每個存儲庫中的「混帳日誌」,並比較了最近一次提交的IDS是完全一樣的使用Git LS-樹頭
此外,哈德森運行此命令檢查更改:
git的取指+裁判/頭/ :裁判/遙控器/產地/ git的LS-樹頭
由於哈德森自己推離其工作區,庫提交,顯然,LS-樹結果的比賽,怎麼能這個命令確定有變化?
看來,它必須是ls-結果樹存儲做的構建和比較這裏面會不會有最新的承諾之前。啊。我可以嘗試關閉提交來測試該理論。
無論如何,我並沒有在哈德森的git插件中解決任何問題,我可以做些什麼來確保在我的構建結束時,回購是完全相同的,哈德森會這樣認爲。
如何解決這個問題?有任何想法嗎?
韋恩
果然。當提交被註釋掉以便腳本只推送到一些存儲庫時,它可以正常工作。也就是說,哈德森認識到發生了零變化,並等待沒有循環的變化。 那麼如何停止無限循環。看起來哈德森的git插件在構建的初始獲取之後保存了回購狀態。但似乎它應該在成功構建之後再次保存回購狀態,以防構建提交 - 或者至少將其作爲選項提供。 任何機構有一個更容易,更快的想法來解決這個問題? – Wayne 2009-11-21 05:52:22
哦,我在github上發現了git-hudson-plugin的一個分支,其他人似乎已經增加了對這種情況的處理。我正在下載並構建,並會嘗試。 再次如果有人有更好的解決方案,請指教。如果解決了問題,我會回覆。 – Wayne 2009-11-21 07:44:09