Jenkins + Git插件CheckoutConflictException

9

我正在尝试设置我的CI,我创建了一个自由风格的作业,但它在git克隆步骤中失败,并显示下面的日志。我已经正确配置了计算机的SSH密钥,但找不到任何问题。

Using strategy: Default
Fetching changes from 1 remote Git repository
Commencing build of Revision 9560773cf0e8545f98c6700c44fd2f9ae31af904 (origin/master)
Checking out Revision 9560773cf0e8545f98c6700c44fd2f9ae31af904 (origin/master)
FATAL: Could not checkout 9560773cf0e8545f98c6700c44fd2f9ae31af904
hudson.plugins.git.GitException: Could not checkout 9560773cf0e8545f98c6700c44fd2f9ae31af904
    at org.jenkinsci.plugins.gitclient.JGitAPIImpl.checkout(JGitAPIImpl.java:68)
    at hudson.plugins.git.GitAPI.checkout(GitAPI.java:208)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1261)
    at hudson.plugins.git.GitSCM.access$1200(GitSCM.java:57)
    at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1220)
    at hudson.plugins.git.GitSCM$4.invoke(GitSCM.java:1196)
    at hudson.FilePath.act(FilePath.java:865)
    at hudson.FilePath.act(FilePath.java:838)
    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1196)
    at hudson.model.AbstractProject.checkout(AbstractProject.java:1353)
    at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:683)
    at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:588)
    at hudson.model.Run.execute(Run.java:1567)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:237)
Caused by: org.eclipse.jgit.api.errors.CheckoutConflictException: Checkout conflict with     files:
Heatmaps.framework/Headers/Heatmaps.h
Heatmaps.framework/Resources/Info.plist
Heatmaps.framework/Versions/Current/Headers
Heatmaps.framework/Versions/Current/Headers/Heatmaps.h
Heatmaps.framework/Versions/Current/Heatmaps
Heatmaps.framework/Versions/Current/Resources
Heatmaps.framework/Versions/Current/Resources/Info.plist
    at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:244)
    at org.jenkinsci.plugins.gitclient.JGitAPIImpl.checkout(JGitAPIImpl.java:64)
    ... 16 more
Caused by: org.eclipse.jgit.errors.CheckoutConflictException: Checkout conflict with files:
Heatmaps.framework/Headers/Heatmaps.h
Heatmaps.framework/Resources/Info.plist
Heatmaps.framework/Versions/Current/Headers
Heatmaps.framework/Versions/Current/Headers/Heatmaps.h
Heatmaps.framework/Versions/Current/Heatmaps
Heatmaps.framework/Versions/Current/Resources
Heatmaps.framework/Versions/Current/Resources/Info.plist
    at org.eclipse.jgit.dircache.DirCacheCheckout.doCheckout(DirCacheCheckout.java:411)
    at org.eclipse.jgit.dircache.DirCacheCheckout.checkout(DirCacheCheckout.java:391)
    at org.eclipse.jgit.api.CheckoutCommand.call(CheckoutCommand.java:240)
    ... 17 more
3个回答

9

我在安装新版本Jenkins 1.505并使用git客户端插件1.0.4时遇到了这个错误。您可以将插件降级到1.0.3,也许会起作用。在我的情况下,我并没有真正使用git客户端插件,因此将其移除了。


1
谢谢,现在我看到他们已经在JIRA中创建了一个错误 https://issues.jenkins-ci.org/browse/JENKINS-17198 - Raphael Oliveira
如果您没有降级选项,您可以使用此网站下载旧版本的Git插件:http://updates.jenkins-ci.org/download/plugins/git-client/ - KrauseFx
如何降级?特别是在Windows Jenkins机器上怎么做? - Albert Cheng
1
转到 http://localhost:8080/pluginManager/installed,无论您的Jenkins安装在哪里。如果没有降级选项,请卸载它(取消已定义作业中的插件使用),重新启动Jenkins,下载包含插件的旧.hpi文件,并使用Jenkins UI或手动上传新插件 https://wiki.jenkins-ci.org/display/JENKINS/Plugins#Plugins-Howtoinstallplugins。 - ssinganamalla

5

我也曾遇到同样的问题。他们已经发布了一个更新来纠正这个错误,所以你只需要将Jenkins Git客户端更新到1.0.5版本。现在它可以正常工作了。


4
我刚遇到了同样的问题,并想提供另一种解决方案:
插件页面上的1.0.4版本信息中,您可以阅读以下内容:
使用GitAPI中的JGit实现所有支持的方法,直到设置org.jenkinsci.plugins.gitclient.Git.useCLI
这似乎是我们问题的原因。但它说可以通过将org.jenkinsci.plugins.gitclient.Git.useCLI设置为true来解决问题。因此,只需将-Dorg.jenkinsci.plugins.gitclient.Git.useCLI=true添加到启动脚本中。
在Debian(使用apt-get版本时),更新/etc/default/jenkins中的JAVA_ARGS就足够了(如这里所述)。

在 Windows 计算机上,JAVA_ARGS 是在哪里设置的? - Albert Cheng
@AlbertCheng 你可以在系统范围内或当前用户设置它:http://www.nextofwindows.com/how-to-addedit-environment-variables-in-windows-7/ 如果你使用 .bat 脚本启动 Jenkins,你可以在本地设置它: http://ss64.com/nt/set.html我手头没有 Windows 安装文件,所以无法自行尝试,但如果你遇到问题,请随时发布 :) - mreithub
1
我猜我弄明白了,只需要修改主从的配置XML文件就可以解决这个问题。不容易啊,真不容易! - Albert Cheng

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接