简体   繁体   中英

Exception during git checkout using jenkins: “No such file or directory”

I am trying to poll git repo from jenkins. But it throws below exception..

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

Jenkins version - 1.549 Git plugin ver - 2.0.1

Finally, the native git for windows has an option for long paths:

The msysgit development team has implemented what appears to be a solution in msysgit 1.9.0. It appears that the solution needs to be specifically enabled, but it may allow you to resolve this problem by installing msystgit 1.9.0 and running

git config --global core.longpaths true

Refer to https://github.com/msysgit/git/commit/c5f98452e98dca292c615000df7973ead63cf29b for more details on the option. You should probably only enable that option if you encounter the problem, since the msysgit people warn that there may be compatibility issues with other tools when longpaths are enabled in core git.

We had the same issue. After some research it seems that the Jenkins git plugin cannot cope with too long paths (> 259 chars) under Windows environments. To be more precise - the git plugin uses git via command line in the latest version and this cannot cope with too long paths. Formerly it used JGit implementation that doesn't have this issue. You can still switch back to this implementation with the Jenkins command line argument:

"-Dorg.jenkinsci.plugins.gitclient.Git.useCLI=false" (same for slaves)

or just choose JGit as implementation in the Jenkins configuration dialogue.

With this everything runs fine. But don't forget that JGit is no fully featured native git!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM