我已经从develop
分支创建了一个分支,并为这个新分支配置了Jenkins作业。在分支出这个新分支之前,实际上我要删除develop
分支中的现有目录(在本地删除目录,然后提交更改并推送到远程),这是最后一次提交。
强制构建后,Jenkins发出错误"Could not checkout <branch name> with start point <SHA1>"
。这个SHA1是我在开发分支上完成的最后一次提交,然后通过删除目录来扩展这个新分支。
我尝试了几种方法,比如重建,擦除工作空间,然后重建等,没有任何运气。虽然Jenkins无法结账,但是我的本地git存储库可以签出这个新分支并且可以毫无问题地进行处理。
我正在努力解决这个问题但没有取得多大成功,并发现了这个Jenkins问题,但我不确定是否相同。 https://issues.jenkins-ci.org/browse/JENKINS-26748
请问有人帮我解决这个问题吗?
以下是完整日志......
Started by user anonymous
Building in workspace C:\Projects\CI_01\Jenkins_1.6\jobs\Velo-TFS675-InvoiceRegister\workspace
Cloning the remote Git repository
Cloning repository https://git.mesite.com/EAG/Velo.git
> C:\Projects\Git\bin\git.exe init C:\Projects\CI_01\Jenkins_1.6\jobs\Velo-TFS675-InvoiceRegister\workspace # timeout=10
Fetching upstream changes from https://git.mesite.com/EAG/Velo.git
> C:\Projects\Git\bin\git.exe --version # timeout=10
using .gitcredentials to set credentials
> C:\Projects\Git\bin\git.exe config --local credential.username ourbuildusr # timeout=10
> C:\Projects\Git\bin\git.exe config --local credential.helper store --file=\"C:\Users\BUILD~1\AppData\Local\Temp\git8122784540015506.credentials\" # timeout=10
> C:\Projects\Git\bin\git.exe -c core.askpass=true fetch --tags --progress https://git.mesite.com/EAG/Velo.git +refs/heads/*:refs/remotes/origin/* # timeout=60
> C:\Projects\Git\bin\git.exe config --local --remove-section credential # timeout=10
> C:\Projects\Git\bin\git.exe config remote.origin.url https://git.mesite.com/EAG/Velo.git # timeout=10
> C:\Projects\Git\bin\git.exe config --add remote.origin.fetch +refs/heads/*:refs/remotes/origin/* # timeout=10
> C:\Projects\Git\bin\git.exe config remote.origin.url https://git.mesite.com/EAG/Velo.git # timeout=10
Fetching upstream changes from https://git.mesite.com/EAG/Velo.git
using .gitcredentials to set credentials
> C:\Projects\Git\bin\git.exe config --local credential.username ourbuildusr # timeout=10
> C:\Projects\Git\bin\git.exe config --local credential.helper store --file=\"C:\Users\EAGBUI~1\AppData\Local\Temp\git8122784540015506.credentials\" # timeout=10
> C:\Projects\Git\bin\git.exe -c core.askpass=true fetch --tags --progress https://git.mesite.com/EAG/Velo.git +refs/heads/*:refs/remotes/origin/* # timeout=60
> C:\Projects\Git\bin\git.exe config --local --remove-section credential # timeout=10
> C:\Projects\Git\bin\git.exe rev-parse "refs/remotes/origin/tfs675-invoice_register^{commit}" # timeout=10
> C:\Projects\Git\bin\git.exe rev-parse "refs/remotes/origin/origin/tfs675-invoice_register^{commit}" # timeout=10
Checking out Revision 7dc4f9190358c20b01d2980e3ba5c7039ace377c (refs/remotes/origin/tfs675-invoice_register)
> C:\Projects\Git\bin\git.exe config core.sparsecheckout # timeout=10
> C:\Projects\Git\bin\git.exe checkout -f 7dc4f9190358c20b01d2980e3ba5c7039ace377c # timeout=10
ERROR: Timeout after 10 minutes
FATAL: Could not checkout tfs675-invoice_register with start point 7dc4f9190358c20b01d2980e3ba5c7039ace377c
hudson.plugins.git.GitException: Could not checkout tfs675-invoice_register with start point 7dc4f9190358c20b01d2980e3ba5c7039ace377c
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:1905)
at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1060)
at hudson.scm.SCM.checkout(SCM.java:485)
at hudson.model.AbstractProject.checkout(AbstractProject.java:1282)
at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:610)
at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:86)
at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:532)
at hudson.model.Run.execute(Run.java:1741)
at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
at hudson.model.ResourceController.execute(ResourceController.java:98)
at hudson.model.Executor.run(Executor.java:381)
Caused by: hudson.plugins.git.GitException: Command "C:\Projects\Git\bin\git.exe checkout -f 7dc4f9190358c20b01d2980e3ba5c7039ace377c" returned status code -1:
stdout:
stderr:
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1640)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1616)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1612)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1254)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1266)
at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$8.execute(CliGitAPIImpl.java:1881)
... 10 more
答案 0 :(得分:2)
我没有完全看到这个错误。当我们尝试结帐的分支已从远程删除时,我经常会看到类似的错误。但有一件事要做,就是在你的jenkins工作的git clone选项中,设置clean before checkout
我们还prune stale remote branches
答案 1 :(得分:0)
工作区中的旧项目需要删除,然后在Jenkins中再次运行测试以进行克隆