- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JGit 提取两个提交之间的差异,但我经常遇到 JGit 抛出 MissingObjectException
并说缺少未知提交 ID 的问题,如下所示:
org.eclipse.jgit.errors.MissingObjectException: Missing unknown 9eae334e9492f55a841e6eb7ab302ff11d03ab21
at org.eclipse.jgit.internal.storage.file.WindowCursor.open(WindowCursor.java:168)
at org.eclipse.jgit.lib.ObjectReader.open(ObjectReader.java:236)
at org.eclipse.jgit.revwalk.RevWalk.parseAny(RevWalk.java:890)
at org.eclipse.jgit.revwalk.RevWalk.parseCommit(RevWalk.java:800)
at collect.CollectTestcase.autoExtraction(CollectTestcase.java:99)*
运行代码时经常出现这种情况
RevWalk walk = new RevWalk(repo);
walk.parseCommit(commitId)
有人知道它出了什么问题吗?
最佳答案
如果存储库中没有具有给定 ID 的对象,JGit 将抛出一个 MissingObjectException
。
git 中有不同类型的对象,常见的有提交、blob 和树。
RevWalk
提供 API 来搜索特定类型,例如 parseCommit
,以及使用 parseAny
的任何类型的对象。您正在搜索提交的信息在途中丢失,导致错误消息中出现令人困惑的“未知”。它实际上应该显示为“缺少提交 abc...”。
但是尽管有令人不快的消息,但这意味着没有这样的提交。您正在传递不同类型的对象的 ID,例如树对象,或者根本没有这样的对象。您可以使用 parseAny
查看是否存在具有给定 ID 的对象。如果可以找到一个对象,使用返回的 RevObject
的 getType
来找出它是哪种类型。
关于JGit 抛出 MissingObjectException 并说缺少未知的提交 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68097863/
我正在使用 JGit 提取两个提交之间的差异,但我经常遇到 JGit 抛出 MissingObjectException 并说缺少未知提交 ID 的问题,如下所示: org.eclipse.jgit.
我正在尝试更新子模块: git.submoduleUpdate().call() 但我得到: org.eclipse.jgit.api.errors.JGitInternalException: Mi
我有一个包含一些测试提交的存储库(全部位于默认分支上)。使用 JGit log 命令,我可以看到这些提交(例如): RepositoryBuilder builder = new Repository
我收到此错误 执行 merge 命令期间捕获的异常。 org.eclipse.jgit.errors.MissingObjectException:缺少未知的 d695171025c312b964e4
我是一名优秀的程序员,十分优秀!