有没有办法使用jgit获取git存储库中每个音符的音符内容。我尝试了几种方法,但似乎都没有。
以下方法,doest列出注释内容和提交ID。
FileRepository repo;
try {
repo = new FileRepository("C:\\example\\repos");
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());
Iterator<Note> it = map.iterator();
while (it.hasNext()) {
System.out.println(it.next());
}
请告诉我?
答案 0 :(得分:2)
jgit提供了一个ListNotes命令,可以在存储库中提供特定或所有注释。然后,您可以阅读非内容。
您可以在代码段jgit-cookbook的ListNotes.java上看到有关如何使用此功能的示例。
然后可以通过普通的Blob读取来获取实际数据,因为注释存储为普通blob,如文件内容,即
ObjectLoader loader = repository.open(note.getData());
loader.copyTo(System.out);
答案 1 :(得分:0)
如果您想将记事内容作为字符串而不在标准输出(控制台)上打印,则可以使用以下代码行。
ObjectLoader loader = repository.open(note.getData());
byte[] bytes = loader.getBytes();
String s = new String(bytes);