我正在尝试使用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
有谁知道我做错了什么?
答案 0 :(得分: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();
}