私はgitectiveでjGitのRevFiltersを使用しています。特定のユーザーのコミットのリストを探していましたが、AuthorFilterは完全に機能します。ただし、今私がやりたいのは、1人以上のユーザーのコミットを取得することです。
リポジトリでgitlogコマンドを実行すると、
joan @ jomaora:〜/ testGit / testMockito $ git log commit b5a49a83f052f632d78a09238056d4df8ebffb59作成者:Marc Czeck日付:Tue Aug 7 17:03:44 2012 +0200
Modifying 1.
commit 8d8dafd5242dbddf34a92ef39661b24167e25b0c作成者:Joan Ortega-Ardila日付:Tue Aug 7 17:01:37 2012 +0200
Starting repo.
この2人のユーザーに対してコミットがあります。追加したAuthorFilterの1つにコメントすると、コードが機能します。AndCommitFilterはこれをリストすることを受け入れませんか?これは私のコードです:
FileRepositoryBuilder builder = new FileRepositoryBuilder();
Repository repository = builder.setGitDir(new File("/home/joan/testGit/testMockito/.git"))
.readEnvironment()
.findGitDir()
.build();
PersonIdent p1 = new PersonIdent("Joan Ortega-Ardila", "jmortega@gmail.com");
PersonIdent p2 = new PersonIdent("Marc Czeck", "marc.czezk@gmail.com");
CommitListFilter list = new CommitListFilter();
AndCommitFilter filters = new AndCommitFilter();
filters.add(new AuthorFilter( p1 ));
filters.add(new AuthorFilter( p2 ));
filters.add(list);
CommitFinder finder = new CommitFinder(repository);
finder.setFilter(filters).find();
for(RevCommit rev : list.getCommits()){
System.out.println(rev.getName());
System.out.println(rev.getAuthorIdent().getName());
System.out.println(rev.getShortMessage());
}
ありがとう