使用jenkins进行git checkout时出现异常:“没有这样的文件或目录”

时间:2014-02-12 10:00:32

标签: git jenkins

我正在尝试从jenkins轮询git repo。 但它抛出异常......

FATAL: Could not checkout null with start point 1abd809011d37508b783f4f74245178ed632295a
hudson.plugins.git.GitException: Could not checkout null with start point 1abd809011d37508b783f4f74245178ed632295a

at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.checkoutBranch(CliGitAPIImpl.java:1274)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:881)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1411)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:651)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:88)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:560)
at hudson.model.Run.execute(Run.java:1670)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
at hudson.model.ResourceController.execute(ResourceController.java:88)
at hudson.model.Executor.run(Executor.java:231)
Caused by: hudson.plugins.git.GitException: Command "git checkout -f 1abd809011d37508b783f4f74245178ed632295a" returned status code 128:
stdout: 
stderr: error: unable to create file sparkIncentiveCommon/src/main/java/com/ebay/spark/incentiveService/supportedpayment/SparkSupportedPaymentIncentiveRequest.java (No such file or directory)
fatal: cannot create directory at 'sparkIncentiveService/src/main/webapp/META-INF/configuration/QA/config/com/ebay/domain/core/common/featurecontingency': No such file or directory

at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1148)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1125)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1121)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:937)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:947)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.checkout(CliGitAPIImpl.java:1248)
at hudson.plugins.git.GitAPI.checkout(GitAPI.java:208)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.checkoutBranch(CliGitAPIImpl.java:1258)
... 9 more

詹金斯版 - 1.549 Git插件ver - 2.0.1

2 个答案:

答案 0 :(得分:2)

最后,Windows的原生git有一个长路径选项:

  

msysgit开发团队已经实现了似乎是一个   msysgit 1.9.0中的解决方案。似乎解决方案需要   特别启用,但它可能允许您解决此问题   安装msystgit 1.9.0并运行

     

git config --global core.longpaths true

     

参考   https://github.com/msysgit/git/commit/c5f98452e98dca292c615000df7973ead63cf29b   有关该选项的更多详细信息。你应该只启用它   如果你遇到这个问题的选项,因为msysgit人警告   在longpaths时可能存在与其他工具的兼容性问题   在核心git中启用。

答案 1 :(得分:0)

我们遇到了同样的问题。经过一些研究,似乎Jenkins git插件无法应对Windows环境下太长的路径(> 259个字符)。更确切地说 - git插件在最新版本中使用git via命令行,这无法应对太长的路径。以前它使用的JGit实现没有这个问题。您仍然可以使用Jenkins命令行参数切换回此实现:

“ - Dorg.jenkinsci.plugins.gitclient.Git.useCLI = false”(对于奴隶来说相同)

或者只选择JGit作为Jenkins配置对话框中的实现。

这一切都运行良好。但是不要忘记JGit没有功能齐全的原生git!