Jgit-从分支获取所有提交

时间:2019-12-02 16:06:46

标签: java automation jgit

美好的一天 伙计们,我对Jgit有问题 我尝试从分支获取所有提交-但是Jgit跳过一半提交

提交:2019年11月26日星期二15:26:19 提交:2019年11月26日星期二14:28:01 提交:2019年11月13日星期三15:44:40 提交:2019年11月12日星期二16:27:27

在11月26日至13日之间,我的提交范围很广

这是我的代码

 RevWalk walk = new RevWalk(repo);
 walk.markStart(walk.parseCommit(repo.resolve(Constants.HEAD)));
 walk.sort(RevSort.TOPO);// chronological order
 walk.setRevFilter(RevFilter.ALL);

 for(RevCommit commit : walk ) {
  System.out.println(commit.getAuthorIdent().getWhen());
}

如果我们检查gitLab-跳过之前的最后一次提交是11月26日 在该提交开发人员中,将“当前分支”合并为“一些测试分支”

在提交之后,我们跳过了一大步 我希望你们中的一些人已经遇到了这个问题,并且可以对我有所帮助)

1 个答案:

答案 0 :(得分:1)

请参见snippet中的jgit-cookbook,基本上可以使用“ Log”命令来实现:

        try (Git git = new Git(repository)) {
            ObjectId branchId = repository.resolve("somebranch");
            Iterable<RevCommit> commits = git.log().add(branchId).call();
            int count = 0;
            for (RevCommit commit : commits) {
                System.out.println("LogCommit: " + commit);
                count++;
            }
        }