2014-10-08 4 views
2

log 명령의 "--no-merge"옵션이나 JGit을 사용하여 로그를 필터링하는 다른 옵션에 해당하는 항목이 있습니까? "Merge"에서 시작하면 커밋 메시지를 확인할 수 있지만 더 좋은 방법 일 수 있습니까? 통과 한 https://github.com/centic9/jgit-cookbook/blob/master/src/main/java/org/dstadler/jgit/porcelain/ShowLog.javaJGIT - 로그에서 병합 건너 뛰기

+1

당신은 부모님의 수를 감추고, 내 지식은 합병 커밋에 2 명의 부모 만있을 수 있습니다. –

답변

2

1 년 이상,하지만 난 레코드에 대한 답변을 게시 할 예정입니다 : 내가 좋아하는 일을하고 있어요

.

현재 버전 4.3 입니다. JGit입니다. 이 버전에서는 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 
     } 
    } 
}