Git “这是什么?”;致命:计算合并基时出错“;什么意思?

Git “这是什么?”;致命:计算合并基时出错“;什么意思?,git,jenkins,Git,Jenkins,我已经让詹金斯竞选了大约一年了。它建立了master、rc*和production分支。每次提交时,它都会执行git克隆、安装捆绑包、运行迁移等。它一直工作得很好。最近,它一直在失败,我得到以下回溯: FATAL: Error computing merge base hudson.plugins.git.GitException: Error computing merge base at hudson.plugins.git.util.GitUtils.filterTipBranches

我已经让詹金斯竞选了大约一年了。它建立了master、rc*和production分支。每次提交时,它都会执行git克隆、安装捆绑包、运行迁移等。它一直工作得很好。最近,它一直在失败,我得到以下回溯:

FATAL: Error computing merge base
hudson.plugins.git.GitException: Error computing merge base
  at hudson.plugins.git.util.GitUtils.filterTipBranches(GitUtils.java:149)
  at hudson.plugins.git.util.DefaultBuildChooser.getAdvancedCandidateRevisions(DefaultBuildChooser.java:201)
  at hudson.plugins.git.util.DefaultBuildChooser.getCandidateRevisions(DefaultBuildChooser.java:46)
  at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:1057)
  at hudson.plugins.git.GitSCM$2.invoke(GitSCM.java:948)
  at hudson.FilePath$FileCallableWrapper.call(FilePath.java:2417)
  at hudson.remoting.UserRequest.perform(UserRequest.java:118)
  at hudson.remoting.UserRequest.perform(UserRequest.java:48)
  at hudson.remoting.Request$2.run(Request.java:326)
  at hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72)
  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
  at java.util.concurrent.FutureTask.run(FutureTask.java:166)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
  at java.lang.Thread.run(Thread.java:679)
之后立即显示以下内容:

Caused by: org.eclipse.jgit.errors.MissingObjectException: Missing commit 2faf546491565d033b1e0a79bef4b2d107447f49
  at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:149)
  at org.eclipse.jgit.revwalk.RevWalk.getCachedBytes(RevWalk.java:853)
  at org.eclipse.jgit.revwalk.RevCommit.parseHeaders(RevCommit.java:142)
  at org.eclipse.jgit.revwalk.MergeBaseGenerator.next(MergeBaseGenerator.java:148)
  at org.eclipse.jgit.revwalk.StartGenerator.next(StartGenerator.java:102)
  at org.eclipse.jgit.revwalk.RevWalk.next(RevWalk.java:414)
  at hudson.plugins.git.util.GitUtils.filterTipBranches(GitUtils.java:127)
  ... 14 more
由于所有分支都包含此提交错误,因此此提交错误也令人困惑

“错误计算合并基”的确切含义是什么?为什么我会收到丢失的提交消息

如有任何见解,将不胜感激

谢谢

git fsck:

Checking object directories: 100% (256/256), done.
Checking objects: 100% (3203/3203), done.
在我的Jenkins配置中,我的git插件配置设置为:

  • 在构建之前清除工作区
  • 使用浅克隆

  • 我在用詹金斯。1.528.

    根据特瓦尔伯格的上述评论,禁用浅层克隆解决了这个问题。所有分支已建立,作业已完成。

    您的本地回购协议似乎已损坏。
    git fsck
    有任何奇怪的输出吗?另外,您的遥控器是否正确(请手动验证)。另一件事是设置Jenkins在拉之前清理工作区(即,删除所有本地更改)。在项目配置中有一个设置。你应该用jenkins Imho标记它。你一直使用浅层克隆吗?我认为,根据克隆的深度,可能很难找到两个分支的合并基(这基本上是两个分支共同拥有的最新提交,或者两个分支的分歧点)。也许您以前从未遇到过这样的情况:有两个分支的合并基础足够深,可以被浅克隆修剪……我关闭了浅克隆。这一次看起来像是我的分公司建的。让它保持一段时间,看看这是否会再次发生。如果没有,我将以禁用阴影克隆作为结束。谢谢。您需要执行两个操作:启用:在构建之前清除工作区,禁用:使用浅层克隆请共享这些步骤好吗?