Как читать заметки Git с использованием JGit с учетом commit-sha

Я пытаюсь прочитать информацию Git Notes с пользовательской ссылки refs/notes/abcd конкретного коммита в репозитории с использованием JGit

Вот что я попробовал:

Repository repository = repositoryManager.openRepository(repoName);
Git git = new Git(repository);
ObjectId oid = repository.resolve("5740b142a7b5f66768a2d904b267dccaef1a095f");
Note note = git.notesShow().setNotesRef("refs/notes/abcd").setObjectId(oid).call();
ObjectLoader loader = repository.open(note.getData());
byte[] data = loader.getBytes();
System.out.println(new String(data, "utf-8"));

Я получаю следующую ошибку компиляции:

ошибка: несовместимые типы: org.eclipse.jgit.lib.ObjectId не может быть преобразован в org.eclipse.jgit.revwalk.RevObject

Как мне пройти RevObject переменная для Git setObjectId() дали строку коммита-ша?

1 ответ

Решение

С RevWalk, идентификатор объекта может быть проанализирован, и в результате RevCommit может быть передан в ShowNoteCommand,

Например:

RevCommit commit;
try( RevWalk revWalk = new RevWalk( repository ) ) {
  commit = revWalk.parseCommit( oid );
}

git.notesShow().setObjectId( commit )...
Другие вопросы по тегам