2

我在 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());
}

谢谢

4

0 回答 0