JGIT - 跳过日志中的合并

时间:2014-10-08 10:43:01

标签: jgit

log命令中是否有“--no-merge”选项的等价物或使用JGit过滤日志的任何其他选项? 当然,我可以检查提交消息,如果它从“合并”开始,但可能是更好的方法吗?

我做的事情如下: https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/ShowLog.java

1 个答案:

答案 0 :(得分:2)

超过一年过去了,但我会发布一条记录的答案。

我们目前处于 JGit 的第4.3版。在此版本中,您可以使用RevWalk#setRevFilter()RevFilter.NO_MERGES,它完全符合您的要求(仅报告非合并提交)。

public void logNonMerges(Repository repo){
   try(RevWalk walk = new RevWalk(repo)) {
      walk.setRevFilter(RevFilter.NO_MERGES);
      Iterator<RevCommit> i = walk.iterator();
      while(i.hasNext()){
         RevCommit commit = i.next();
         // do whatever you want
      }
   }
}