当前位置: 首页 > 知识库问答 >
问题:

JGit如何从RevCommit获取SHA1?

葛雪松
2023-03-14

这似乎是一个愚蠢的问题,但我在任何地方都找不到关于它的文档。

如何获取RevCommit对象的SHA1?

共有2个答案

吕征
2023-03-14

请注意,getName()仅适用于SHA-1存储库:JGit还不能用于SHA-256存储库。

这就是为什么,举例来说,Git 2.30 (Q1 2021)会标记使用JGit的测试不运行,除非我们使用ShA-1库进行测试。

参见SZEDER Gábor提交的ea699b4(2020年11月13日)(SZEDER
(由Junio C Hamano--gitster--在2020年11月25日提交的d302170中合并)

签字人:SZEDER Gábor
,审核人:Taylor Blau

在' t5310-pack-bitmaps.sh '中,两个测试确保我们的包位图与JGit的位图兼容。< br >遗憾的是,甚至最新的JGit版本(5.9.0.202009080501-r)也不支持SHA256,所以当在安装了JGit的< code>PATH中运行< code > GIT _ TEST _ DEFAULT _ HASH = sha 256 测试脚本时,这两个测试都会失败。

使用SHA1 prereq保护这两个测试,以便在使用SHA256测试时跳过它们。

朱修德
2023-03-14

RevCommit继承自具有getName函数的AnyObjectId

public final String getName()

退货:

SHA-1的字符串形式,小写为十六进制。

 类似资料:
  • 问题内容: 这个问题与这个问题相反:JGit如何从RevCommit获得SHA1?。 如果给我特定提交的SHA1 ID作为字符串,如何在JGit中获取ObjectId或关联RevCommit? 这是一个可能的答案,它遍历所有RevCommits: 有什么比上面的实现更好的了吗? 问题答案: 首先将字符串转换为an ObjectId,然后再RevWalk查找它可能会更容易。

  • 这个问题与这个问题相反:JGit如何从RevCommit中获取SHA1?。 如果我以字符串形式获得特定提交的SHA1 ID,如何在JGit中获取或关联的? 下面是一个可能的答案,它将遍历所有 : 还有比上面这个实现更好的吗?

  • 如何使用JGit获取源远程的URL? 我正在使用JGit,我想执行 那要怎么做?

  • 问题内容: 不久前,我正在寻找Java中的可嵌入的分布式版本控制系统,我想我已经在JGit中找到了它,它是git的纯Java实现。但是,示例代码或教程的方式并不多。 如何使用JGit检索某个文件的HEAD版本(就像或应该做)? 我想这涉及一些rev-tree-walking,并且正在寻找代码示例。 问题答案: 不幸的是,Thilo的答案不适用于最新的JGit API。这是我找到的解决方案: 我希望

  • 问题内容: 我一直在研究将要集成Git功能的基于Java的产品。使用Git的功能之一,我通过分阶段执行将10多个文件添加到Git存储库中,然后在一次提交中提交了这些文件。 以上过程可能相反吗?即查找作为提交的一部分提交的文件列表。 我在命令的帮助下获得了提交,但是我不确定如何获取提交的文件列表。 示例代码: 问题答案: 每个提交都指向一 棵树 ,该 树 表示构成该提交的所有文件。注意,这不仅包括使

  • 我一直在开发一个基于Java的产品,Git特性将被集成到该产品中。通过使用Git的一个特性,我将10个文件添加到Git存储库中,然后在一次提交中提交。 上述过程是否可能相反?即查找作为提交的一部分提交的文件列表。 我在< code>git.log()命令的帮助下获得了提交,但是我不确定如何获得提交的文件列表。 示例代码: