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입니다.
내 파일의 전체 경로를 정의해야합니까? master 브랜치가 "분기 된"것이므로 커밋을 찾을 수 없거나 다른 문제가있을 수 있다는 점이 문제가됩니까?
당신이 마지막으로 ** 특정 ** 파일을 변경 저자를 알고 싶니? – clinical
예, 약 500 개의 파일 목록이 있으며 각 파일에 대한 정보가 필요합니다. – Sirim