JGit有a good cook-book receipt,它描述了如何责怪文件中特定行的作者。
现在我想知道谁最后更改了一个文件。迭代所有行以找到最后更改的行看起来有点不那么优雅。想法?
答案 0 :(得分:1)
您可以将LogCommand
与路径过滤器一起使用,如下所示:
Iterable<RevCommit> iterable = git.log().addPath( "foo.txt" ).call();
RevCommit latestCommit = iterable.iterator().next();
代码会查找已修改latestCommit
的{{1}}。我还没有使用合并提交或其他具有多个父级的提交来测试上面的代码段。
注意但是此解决方案可能会泄漏资源:提供迭代器的foo.txt
由RevWalk
创建,但从未关闭。
为了避免资源泄漏,您可以手动迭代历史记录,如下所示:
LogCommand