我们使用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中获取更多信息,这样我就可以知道哪些文件失败了?
答案 0 :(得分:1)
可能没有办法,因为它有一个open issue,而且至少看source code我看不到任何地方记录的异常细节。他们迷路了。
您可以做的一些选项:
使用调试器运行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 checkout master
git merge -X ours REV-1234
这将允许您保留当前的冲突文件的分支文件修订版。
git checkout master
git merge -X theirs REV-1234
这将允许您保留针对冲突文件的远程分支文件修订。