Как читать заметки 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 )...