Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TeamCity和挂起的Git合并分支提交使用失败的测试保持构建_Java_Git_Continuous Integration_Teamcity_Git Merge - Fatal编程技术网

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

Java TeamCity和挂起的Git合并分支提交使用失败的测试保持构建,java,git,continuous-integration,teamcity,git-merge,Java,Git,Continuous Integration,Teamcity,Git Merge,我们使用TeamCity进行持续集成,使用Git进行源代码控制。一般来说,它工作得很好-方便,现代和良好的我们快速反馈测试失败 有一个奇怪的行为与Git合并细节有关。以下是案例的步骤: 第一个开发者从主回购中撤出 第二个开发商从主回购中撤出 第一个开发人员在本地进行提交 第二个开发者在本地提交B 第二个开发人员推动提交B 第一个开发人员想要推送提交A,但无法,因为他必须先拉送提交B 第一个开发人员从远程reposity拉 第一个开发人员推送提交并生成合并分支提交 主回购中的承诺历史记录如下:

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

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

  • 第一个开发者从主回购中撤出
  • 第二个开发商从主回购中撤出
  • 第一个开发人员在本地进行提交
  • 第二个开发者在本地提交B
  • 第二个开发人员推动提交B
  • 第一个开发人员想要推送提交A,但无法,因为他必须先拉送提交B
  • 第一个开发人员从远程reposity拉
  • 第一个开发人员推送提交并生成合并分支提交
  • 主回购中的承诺历史记录如下:

    • B第二个开发者
    • 第一个开发者
    • 合并分支首先是开发人员
    现在让我们假设第二个开发人员在提交B中修复了一些失败的测试

    TeamCity将做以下工作:

  • 提交B到达-TeamCity在通过所有测试的情况下进行构建#1
  • 提交A到达-TeamCity使构建2(不提交B)测试栏变为红色

  • TeamCity认为挂起的“合并分支”提交不包含任何更改(任何新文件),但它实际上包含提交B的合并,因此TeamCity不希望在此处进行新构建并使测试变为绿色

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

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


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

    还没有固定在5.0.3。但据报道,这是一个众所周知的问题


    您可以在

    上投票支持这个问题,我强烈建议您使用git pull--rebase,或者完全使用git fetch,然后使用git log-p^ master origin/master修改已更改的内容,以确定我是否同意由于其他开发人员的工作而发生的情况。在这一点上,我可以在远程更改的基础上重新确定我的工作,teamcity不会给您带来您在这里看到的问题。这不是我在teamcity周围工作时所做的事情,而是工作流的一部分,该工作流允许更线性的历史记录和合并冲突解决方案,如果要合并以前的合并,则无需重新访问这些解决方案

    嗯,


    亚当

    你有没有试着问过JetBrains这个问题?几乎没有类似的问题。看起来这里是最接近的,我相信这个问题在TeamCity 5.0.3(和5.1 EAP)中不是实际的。如果您遇到此问题(TeamCity不显示包含0个更改文件的合并提交),请确保您不使用较旧的git插件(.BuildServer/plugins不应包含jetbrains.git.zip)。如果您使用TeamCity 5.0.3或5.1 EAP,请在此处添加注释。»我知道我可以在此处使用git log-p..origin/master,但发现“not”语法更具表达力