2014-08-29 43 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))