我是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());
}
}
Run Code Online (Sandbox Code Playgroud)
有什么建议?难道我做错了什么?
谢谢.
Kev*_*cki 10
您需要在迭代之前RevWalk通过调用添加提交markStart.
例如,RevWalk使用当前存储库的HEAD提交启动:
walk.markStart(walk.parseCommit(repository.resolve("HEAD")));
| 归档时间: |
|
| 查看次数: |
3442 次 |
| 最近记录: |