我在 jGit 中使用带有 gitective 的 RevFilters。我正在寻找列出特定用户的提交,而 AuthorFilter 工作得很好。但是,现在我想做的是获得一个或多个用户的提交。
当我在我的仓库上执行 git log 命令时,我有
joan@jomaora:~/testGit/testMockito$ git log commit b5a49a83f052f632d78a09238056d4df8ebffb59 作者:Marc Czeck 日期:2012 年 8 月 7 日星期二 17:03:44 +0200
Modifying 1.
提交 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());
}
谢谢