有时当我执行以下操作时:
BlameCommand blamer = new BlameCommand(repo);
ObjectId commitID = repo.resolve("head");
blamer.setStartCommit("head");
blamer.setFilePath(fileName);
BlameResult blame = blamer.call();
RevCommit commit = blame.getSourceCommit(0); //set to first line but can be random line of file
从示例代码的最后一行获得的提交是null
;它并不总是null
,只是在一些文件的某些行上。我怀疑它与CR / LF问题有关,因为我在Windows机器上运行此代码,所以我尝试更改我的全局和存储库配置core.autocrlf
值。我为core.autocrlf尝试了true和false,但我仍然遇到同样的问题。
目前正在使用: jgit-3.1.0.201310021548
答案 0 :(得分:0)
我在使用BlameCommand的jgit-cookbook添加了一个代码段,它在那里工作正常,在您的示例代码中setStartCommit()是错误的,它应该是commitID。
以下适用于我:
BlameCommand blamer = new BlameCommand(repository);
ObjectId commitID = repository.resolve("HEAD");
blamer.setStartCommit(commitID);
blamer.setFilePath("README.md");
BlameResult blame = blamer.call();