1
GITリポジトリで最後にファイルを変更/コミットしたユーザーが必要です。JGitでファイルを最後に変更した人を見つける方法
プロジェクトは多くのサブフォルダで構成され、マスターブランチには多数のマージされたコミットがあります。
私が試した:
File gitWorkDir = new File("D:/gitfolder/");
Git git = Git.open(gitWorkDir);
RevCommit latestCommit;
String path = "test.txt";
try(RevWalk revWalk = new RevWalk(git.getRepository())) {
Ref headRef = git.getRepository().exactRef(Constants.HEAD);
RevCommit headCommit = revWalk.parseCommit(headRef.getObjectId());
revWalk.markStart(headCommit);
revWalk.sort(RevSort.COMMIT_TIME_DESC);
TreeFilter filter = AndTreeFilter.create(PathFilter.create(path), TreeFilter.ANY_DIFF);
revWalk.setTreeFilter(filter);
latestCommit = revWalk.next();
git.close();
}
をリポジトリとHEADコミットありますが、latestCommit
は常にnullです。
ファイルへのパス全体を定義する必要はありますか? マスターブランチが「分岐している」ので、コミットが見つからないか、それ以外に何が問題になるのでしょうか?
あなたが最後**特定**ファイルを変更し、著者を知りたいですか? – clinical
はい、約500ファイルのリストがあり、各ファイルの情報が必要です – Sirim