私はjGitとGitの初心者です。Git リポジトリのコミットの履歴を照会しようとしていますが、特定のユーザーのコミットのみを取得したいと考えています。私が見たドキュメントを読むと、RevWalk を使用すると、検索を制限するために RevFilters を追加できるようになります。
まず、Git オブジェクトとそのログ メソッドを使用してコミットを一覧表示すると、非常にうまく機能します。しかし、RevWalk を使用しても何も起こりません。
public static void main(String[] args) throws IOException, GitAPIException {
FileRepositoryBuilder builder = new FileRepositoryBuilder();
Repository repository = builder.setGitDir(new File("/home/joan/testGit/testMockito/.git"))
.readEnvironment().findGitDir().build();
//This works but I get all the commits
Git git = new Git(repository);
Iterable<RevCommit> log = git.log().call();
for (Iterator<RevCommit> iterator = log.iterator(); iterator.hasNext();) {
RevCommit rev = iterator.next();
System.out.println(rev.getAuthorIdent().getName());
System.out.println(rev.getFullMessage());
}
RevWalk walk = new RevWalk(repository);
for (Iterator<RevCommit> iterator = walk.iterator(); iterator.hasNext();) {
//It never cames in this block
RevCommit rev = iterator.next();
System.out.println(rev.getAuthorIdent().getName());
System.out.println(rev.getFullMessage());
}
}
何かアドバイス?私は何か間違ったことをしていますか?
ありがとう。