我正在使用jGit中的RevFilters和gitective。我一直在寻找特定用户的提交列表,而AuthorFilter完美地工作。但是,现在我想做的是获得一个或多个用户的提交。
当我在我的仓库上执行git log命令时,我有
joan @ jomaora:〜/ testGit / testMockito $ git log commit b5a49a83f052f632d78a09238056d4df8ebffb59作者:Marc Czeck 日期:2012年8月7日星期二17:03:44 +0200
Modifying 1.
commit 8d8dafd5242dbddf34a92ef39661b24167e25b0c作者:Joan Ortega-Ardila日期:2012年8月7日星期二17:01:37 0200
Starting repo.
我已经为这两个用户提交了。当我评论我添加的AuthorFilter之一时,我的代码有效。 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());
}
由于