Buildbot在重置时失败 - 硬

时间:2014-08-29 01:20:40

标签: buildbot

Buildbot 0.8.6

buildbot会定期无法获取特定的存储库。它执行以下命令:

  

argv:['/ usr / bin / git','reset',' - hard',   '26d7a2f5af4b777b074ac47a7218fe775d039845']

然后抱怨:

  

致命:无法解析对象   '26d7a2f5af4b777b074ac47a7218fe775d039845'。

但是,正确的命令实际上是:

  

argv:['/ usr / bin / git','reset',' - hard','FETCH_HEAD']

不仅如此。失败命令中使用的SHA编号来自不同的存储库。

任何人都知道如何解决这个问题?

非常感谢。


更新

我们有两个存储库。我们有一个GitPoller正在观看其中一个存储库。如果被监视的存储库有推送,我想有一个构建运行。但是,构建需要两个存储库。上面指定的错误发生在第二个未观看的存储库上。错误中的SHA编号来自监视的存储库。

1 个答案:

答案 0 :(得分:2)

好的,首先,让我们确保我们有正确的理解:

  • 您遇到了一个构建2个存储库的构建器的问题
  • 每个构建都有两个git步骤,用于克隆两个不同的存储库
  • 您正在轮询其中一个存储库以触发构建
  • 没有其他调度程序触发构建(或者至少不是那种失败的调度程序)

当您轮询存储库以触发构建时,会发生的情况是每个新构建都会带有触发它的更改。 git步骤引用这些更改来检出正确的版本。您可能需要使用codebases来帮助区分更改的两个步骤。不幸的是,代码库是在0.8.7中引入的,所以你应该考虑升级。 0.8.6是古代

如果无法升级,请将alwaysUseLatest=True传递到您轮询的存储库的Git()步骤。这将迫使它始终使用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))