2014-08-29 59 views
2

Buildbot 0.8.6Buildbot復位失敗--hard

定期的buildbot將無法獲取特定的存儲庫。它這樣做的命令:

的argv:[ '的/ usr /斌/ GIT中', '復位', ' - 硬', '26d7a2f5af4b777b074ac47a7218fe775d039845']

然後抱怨:

致命:無法解析對象 '26d7a2f5af4b777b074ac47a7218fe775d039845'。

但是,正確的命令實際上是:

的argv:[ '的/ usr /斌/ GIT中', '復位', ' - 硬', 'FETCH_HEAD']

不僅如此。失敗命令中使用的SHA編號來自不同的存儲庫。

任何人都知道如何解決這個問題?

非常感謝。


更新:

我們有兩個庫。我們有一個GitPoller正在觀看其中一個存儲庫。如果所監視的存儲庫有推送,我想要運行一次構建。但是,這兩個存儲庫都是構建所需的。上面指定的錯誤發生在第二個未監視的存儲庫上。錯誤中的SHA編號來自監視的存儲庫。

回答

2

好吧,首先,讓我們確保我們有正確的認識:

  • 您遇到一個建設者,即建立2個庫問題
  • 每個構建具有克隆兩種不同的存儲庫2個git的步驟
  • 你輪詢這些存儲庫的一個觸發建立
  • 有是觸發沒有其他調度建立(或者至少不是那些不這樣)

當您輪詢存儲庫以觸發構建時,會發生什麼情況是每個新構建都帶有觸發它的更改。 git步驟引用這些更改來檢出正確的版本。您可能需要使用codebases來幫助這兩個步驟區分變化。不幸的是,代碼庫是在0.8.7版本中引入的,所以你應該考慮升級。 0.8.6是古代

如果升級是不是一種選擇,通過alwaysUseLatest=TrueGit()步驟庫的,你是不是輪詢。這將迫使它始終使用FETCH_HEAD。這是我的拍攝設置:

f = BuildFactory() 
f.addStep(Git(repourl='git://github.com/you/polled_repo.git', mode='copy')) 
f.addStep(Git(repourl='git://github.com/you/other_repo.git', alwaysUseLatest=True))