
要访问存储库的历史记录,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来获取
Diffs和
Edits
的列表,这些列表可以告诉您更改了多少个文件和每个文件行。
您可能需要看一下这篇文章才能开始:如何使用JGit显示两次提交之间的更改
这里是一篇文章,深入介绍了JGit的diff API:http://www.preaffine.com/2016/06/16/jgit-
diff/
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)