使用JGit检索最早的提交

Geo*_*ios 7 java git

我正在尝试使用JGit进行项目,虽然它主要工作,但检索最早的(第一次)提交却没有.这是代码:

    RevWalk rw = new RevWalk(new Repository(
           new File("/path/to/git")));
    RevCommit oldest;
    Iterator<RevCommit> i = rw.iterator();
    if (i.hasNext())
        oldest = i.next();
    Commit c = oldest.asCommit(rw); //oldest is null here, NPE
Run Code Online (Sandbox Code Playgroud)

有谁知道我做错了什么?

Geo*_*ios 10

我想我找到了.您必须反转提交日志并设置一个起点,以使其开始通过修订.以下摘录做了我想要的,但我不知道它是多么优化.

 RevWalk rw = new RevWalk(new Repository(
       new File("/path/to/git")));
 RevCommit c = null;
 AnyObjectId headId;
 try {
     headId = git.resolve(Constants.HEAD);
     RevCommit root = rw.parseCommit(headId);
     rw.sort(RevSort.REVERSE);
     rw.markStart(root);
     c = rw.next();
 } catch (IOException e) {
     e.printStackTrace();
 }
Run Code Online (Sandbox Code Playgroud)