Jenkins GitPlugin - 如何找出预构建合并失败的内容?

时间:2013-06-18 01:30:04

标签: java git jenkins

我们使用GitPlugin安装Jenkins来拉取分支并合并它们,如GitPlugin Wiki中所述。但是,当合并失败时,没有输出说明它失败的原因,只是它没有干净地合并:

<snip>
Seen branch in repository origin/HEAD
Seen branch in repository origin/labs/intro
Seen branch in repository origin/master
Commencing build of Revision 620c4373792b8cef6a3992b6676892479ed379b0 (origin/REV_4/REV-1234)
Merging Revision 620c4373792b8cef6a3992b6676892479ed379b0 (origin/REV_4/REV-1234) onto REV_4/integration
ERROR: Branch not suitable for integration as it does not merge cleanly
[JaCoCo plugin] Collecting JaCoCo coverage data...
<snip>

我无法在本地复制此行为。它与Git行结束设置有关。

任何人都可以告诉我如何从Jenkins和GitPlugin中获取更多信息,这样我就可以知道哪些文件失败了?

2 个答案:

答案 0 :(得分:1)

可能没有办法,因为它有一个open issue,而且至少看source code我看不到任何地方记录的异常细节。他们迷路了。

您可以做的一些选项:

  • 自己合并分支,看看是否有帮助
  • 制作插件的分支,将信息保存在某处或输出或
  • 使用远程调试器运行Jenkins,在代码中有一个断点。

使用调试器运行Jenkins有instructions here

  

将以下内容添加到JENKINS_JAVA_OPTIONS变量中(以。分隔   空格,用引号括起来):

     

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5678

     

所以整行可能看起来像:

     

JENKINS_JAVA_OPTIONS="-Djava.awt.headless=true -DXX:MaxPermSize=512m -DXX:+HeapDumpOnOutOfMemoryError -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=0"

     

如果需要,显然可以将端口从5678更改为其他内容。

答案 1 :(得分:0)

当git merge合并文件冲突时,GIT插件会提示此错误。 尝试本地合并两个分支,你可以看到。

这里可以使用的一个解决方案是使用我们的/他们的策略执行git merge

    git checkout master
    git merge -X ours REV-1234

这将允许您保留当前的冲突文件的分支文件修订版。

    git checkout master
    git merge -X theirs REV-1234

这将允许您保留针对冲突文件的远程分支文件修订。