java - 如何用JGit遍历Git仓库并画图

标签 java scala jgit

我需要使用 JGit 从 Git 存储库中绘制图表。

我一直在考虑遍历提交的不同方法。我需要能够从分支/提交中绘制一个/多个图形,并且我还需要能够在任意范围内进行绘制,比如从第 200 次提交到第 250 次提交(跳过最近进行的 200 次提交) .

我应该如何遍历存储库?使用 RevWalk?我想让它保持足够的性能,我想知道是否有一种明确的方法可以很好地做到这一点。

更新:基本上我正在研究制作类似 git log --graph -n 50 --skip 200 的东西,它显示了 200- 之间的存储库图250 个按创建顺序提交。现在我只想自己做这件事。 :)

更新 2: 如果我也可以遍历那些悬空的(没有引用),并用灰色绘制它们,那就太好了。

最佳答案

是的,我同意你的看法,你应该使用 RevWalk。 JGit 提供类似于日志调用的瓷器 API,但它在较低层提供了有趣的入口点。

它可能比使用瓷器 API 或任何基于 Git 的方法更有效。

我真的不明白你所说的未引用提交是什么意思。那些不在分支中的?

另一件事是我不确定您是否可以一次查询所有提交,我的意思是您应该查询每个分支,但我想您已经想到了。我一直想知道是否有比查询每个分支更快的方法(如果它们很短并且有大量的共同历史,那将浪费大量时间)

关于java - 如何用JGit遍历Git仓库并画图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373423/

相关文章:

JGit 抛出 MissingObjectException 并说缺少未知的提交 ID

java - 如何将 Android Device Monitor 添加到 Android Studio 的主工具栏?

java - Android 的 ARToolkit 演示无法正常工作

Java游戏帧率下降

scala:构造函数区分应用和隐式参数吗?

java - JGit:RevWalk 顺序优先的起点

java - 微服务 Restful API - DTO 与否?

scala - Spark 流 : NullPointerException inside foreachPartition

api - 为分页 API 制作 Scala 迭代器

java - 使用 JGit fetch() 并检查更新的文件