TeamCity和待定的Git合并分支提交使用失败的测试保持构建

时间:2010-04-01 15:03:06

标签: java git continuous-integration teamcity git-merge

我们使用TeamCity进行持续集成,使用Git进行源代码控制。一般来说它的工作非常好 - 方便,现代,当测试失败时我们会快速反馈。

有一个与Git合并细节相关的奇怪行为。以下是案例的步骤:

  1. 第一位开发人员来自主仓库。
  2. 第二位开发人员来自主仓库。
  3. 第一个开发人员在本地提交A.
  4. 第二个开发人员在本地提交B;
  5. 第二位开发人员推送提交B.
  6. 第一个开发人员想要推送提交A但无法执行,因为他必须先提交提交B.
  7. 第一个开发人员来自远程贪婪。
  8. 第一个开发人员推送提交A并生成合并分支提交。
  9. 主回购提交的历史如下:

    • B第二位开发人员
    • 第一位开发人员
    • merge branch first developer。

    现在让我们假设第二个开发人员在他的提交B中修复了一些失败的测试。

    TeamCity将做的是:

    1. 提交B到达 - TeamCity使所有测试通过的构建#1
    2. 提交A到达 - TeamCity使构建#2(没有提交B)测试栏变为红色!

    3. TeamCity认为Pending“Merge Branch”提交不包含任何更改(任何新文件) - 但实际上它确实包含提交B的合并,因此TeamCity不希望在此处进行新的构建并使测试成为绿色。

    4. 以下是两个问题: 1.在我们的例子中,我们在第二次提交中返回的测试失败(提交A) 2. TeamCity不想进行新的构建并将测试重新设置为绿色。

      有没有人知道如何解决这两个问题。

      我考虑了一些合理的一般方法。

2 个答案:

答案 0 :(得分:1)

只是添加,我强烈建议使用git pull --rebase,或者完全只是做一个git fetch,然后用git log -p ^ master origin / master做一些修改,以确定我是否还好由于其他开发人员的工作而发生的事情。在这一点上,我可以在远程更改的基础上重新设计我的工作,团队城市不会给你在这里看到的问题。这不是我为团队城市工作所做的事情,但也是工作流程的一部分,它允许更加线性的历史记录和合并冲突解决方案,如果要合并以前的合并,则不必重新访问。

HTH,

亚当

答案 1 :(得分:0)

尚未在5.0.3中修复。但它被报道为已知问题

您可以在http://youtrack.jetbrains.net/issue/TW-9584

投票支持此问题