如何在JGit中编写git log --stat命令

如何在JGit中编写git log --stat命令,第1张

如何在JGit中编写git log --stat命令

要访问存储库的历史记录,JGit提供了

RevWalk
。它的
markStart()
方法用于指定历史记录应从哪个提交开始。存储库中的所有引用都可以通过获取
Repository::getAllRefs()

一旦一个

RevWalk
实例设置,使用它的迭代器或它的
next()
方法来遍历的历史。

放在一起看起来像这样:

try (RevWalk revWalk = new RevWalk(repository)) {  for (Ref ref : repository.getAllRefs().values()) {    revWalk.markStart(revWalk.parseCommit(ref.getObjectId()));  }  for (RevCommit commit : revWalk) {    // print commit metadata and diff  }}

请注意,

RevWalk
调用的实例
parseCommit()
必须与调用的实例相同
markStart()
。否则,
RevWalk
将会产生有趣的结果。

提交(并由此访问其父项)后,您可以使用

DiffFormatter
来获取
Diff
s和
Edit
s
的列表,这些列表可以告诉您更改了多少个文件和每个文件行。

您可能需要看一下这篇文章才能开始:如何使用JGit显示两次提交之间的更改

这里是一篇文章,深入介绍了JGit的diff API:http://www.preaffine.com/2016/06/16/jgit-
diff/



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5565654.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-14
下一篇2022-12-14

发表评论

登录后才能评论

评论列表(0条)

    保存