Получение самой старой фиксации с JGit

Я экспериментирую с 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

Кто-либо знает то, что я делаю неправильно?

7
задан Erick Robertson 4 August 2010 в 17:19
поделиться

1 ответ

Думаю, я нашел. Вы должны отменить журнал фиксации и установить начальную точку, чтобы он начал проходить ревизии. Следующий отрывок делает то, что я искал, но я почему-то сомневаюсь, насколько он оптимален.

 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();
 }
10
ответ дан 7 December 2019 в 01:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: