2013-09-10 2 views
1

Есть ли java api для git, который позволяет извлекать git-заметки из репозитория? Я посмотрел на http://server001.agilebackoffice.org/nexus/content/repositories/atlassian/com/xiplink/jira/git/jira-git-plugin/0.6/, но похоже, что он не поддерживает git notes. Любые идеи, на которые нужно обратить внимание?git: java git api для извлечения записей git из хранилища

ответ

1

JGit может иметь то, что вы ищете, в частности http://download.eclipse.org/jgit/docs/latest/apidocs/org/eclipse/jgit/notes/NoteMap.html.

Например, глядя вверх записку для конкретного коммита можно сделать с помощью:

Repository repo = ... 

RevWalk walk = new RevWalk(repo); 
NoteMap map = NoteMap.newEmptyMap(); 
Ref ref = repo.getRef("refs/notes/commits"); 

if (ref != null) { 
    RevCommit notesCommit = walk.parseCommit(ref.getObjectId()); 
    map = NoteMap.read(walk.getObjectReader(), notesCommit); 
    map.getNote(notesCommit.getId()); 
} 
+0

не так много эксперта Java, но, как отобразить все ноты на стандартный вывод? – Iowa

+0

Вы можете пройти через NoteMap с помощью [итератора] (http://en.wikipedia.org/wiki/Iterator#Java). После получения каждой заметки с помощью [Iterator.next()] (http://docs.oracle.com/javase/7/docs/api/java/util/Iterator.html#next%28%29) вы можете распечатать строка, возвращаемая [Note.toString()] (http://download.eclipse.org/jgit/docs/latest/apidocs/org/eclipse/jgit/notes/Note.html#toString%28%29) –

+0

Я попробовал этот подход, но он дает мне имена файлов в refs/notes/commits. Я ищу заметки для каждой фиксации. Помимо чтения содержимого этих файлов, есть способ получить сообщения заметки, просто хочу знать??? – Iowa

Смежные вопросы