gpt4 book ai didi

java - TeamCity 和挂起的 Git merge 分支提交保持构建失败的测试

转载 作者:行者123 更新时间:2023-11-30 11:59:28 25 4
gpt4 key购买 nike

我们使用 TeamCity 进行持续集成,使用 Git 进行源代码控制。一般来说,它工作得很好 - 方便、现代并且在测试失败时有利于我们快速反馈。

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

  1. 第一个开发人员从主存储库中提取数据。
  2. 第二个开发人员从主存储库中提取数据。
  3. 第一个开发人员在本地提交 A。
  4. 第二个开发人员在本地提交 B;
  5. 第二个开发人员推送提交 B。
  6. 第一个开发人员想要推送提交 A 但无法推送,因为他必须先 pull 提交 B。
  7. 第一个开发人员从远程存储库中 pull 。
  8. 第一个开发人员推送提交 A 并生成 merge 分支提交。

master repo 中的提交历史如下:

  • B 第二开发者
  • 第一个开发者
  • 首先 merge 分支开发人员。

现在假设 Second Developer 在他的提交 B 中修复了一些失败的测试。

TeamCity 将执行以下操作:

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

  3. TeamCity 认为待处理的“merge 分支”提交不包含任何更改(任何新文件)- 但它实际上确实包含提交 B 的 merge ,因此 TeamCity 不想在这里进行新构建并使测试成为绿色。

这里有两个问题:1. 在我们的例子中,我们在第二次提交(提交 A)中返回失败的测试2. TeamCity 不想进行新构建并使测试恢复绿色。

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

我考虑一些合理的通用方法。

最佳答案

只是补充一下,我强烈建议使用 git pull --rebase,或者完全只做一个 git fetch,然后用 git log -p ^master origin/master 修改更改的内容,以确定我是否可以由于其他开发人员的工作而发生的事情。在这一点上,我可以将我的工作重新定位在远程更改之上,teamcity 不会给您带来您在此处看到的问题。这不是我围绕 teamcity 所做的事情,而是工作流的一部分,它允许更线性的历史记录和 merge 冲突解决方案,如果您正在 merge 以前的 merge ,则不必重新访问。

HTH,

亚当

关于java - TeamCity 和挂起的 Git merge 分支提交保持构建失败的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com