2

jgit を使用して、git リポジトリ内のすべてのノートのノート コンテンツを取得する方法はありますか。いくつかのアプローチを試しましたが、どれもうまくいかないようです。

以下のアプローチでは、ドットはメモの内容もコミット 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());
            }

私にお知らせください?

4

2 に答える 2

2

jgit は、リポジトリ内の特定のメモまたはすべてのメモを提供できるListNotesコマンドを提供します。そこから、非コンテンツを読むことができます。

Snippet ListNotes.javaのjgit-cookbookで、これがどのように使用されるかの例を見ることができます。

実際のデータは、通常の Blob 読み取りによって取得できます。これは、メモがファイル コンテンツのような通常の BLOB として保存されるためです。つまり、

ObjectLoader loader = repository.open(note.getData());
loader.copyTo(System.out);
于 2013-09-15T18:46:28.587 に答える