如何使用 libgit2 中的 `git_note`?
How to use `git_note` from libgit2?
我有如下代码(commit_id
已设置):
git_note* note;
git_note_read(¬e, repo, "refs/notes/label", &commit_oid);
printf("%s\n", note->message);
git_note_free(note);
它没有编译,抱怨:
.../importer_test.cc:103:22: error: member access into incomplete type 'git_note'
printf("%s\n", note->message);
^
.../include/git2/types.h:160:16: note: forward declaration of 'git_note'
typedef struct git_note git_note;
如果我只是 copy/paste 从 src/notes.h
到这个文件:
struct git_note {
git_oid id;
git_signature *author;
git_signature *committer;
char *message;
};
编译和运行正确。但这肯定不是正确的解决方案吗?
git_note
是不透明类型。您无意直接访问数据成员。您应该使用访问器函数来读取它。在您的情况下,您可能希望使用 git_note_message()
来获取消息。
我有如下代码(commit_id
已设置):
git_note* note;
git_note_read(¬e, repo, "refs/notes/label", &commit_oid);
printf("%s\n", note->message);
git_note_free(note);
它没有编译,抱怨:
.../importer_test.cc:103:22: error: member access into incomplete type 'git_note'
printf("%s\n", note->message);
^
.../include/git2/types.h:160:16: note: forward declaration of 'git_note'
typedef struct git_note git_note;
如果我只是 copy/paste 从 src/notes.h
到这个文件:
struct git_note {
git_oid id;
git_signature *author;
git_signature *committer;
char *message;
};
编译和运行正确。但这肯定不是正确的解决方案吗?
git_note
是不透明类型。您无意直接访问数据成员。您应该使用访问器函数来读取它。在您的情况下,您可能希望使用 git_note_message()
来获取消息。