1 /* 2 * Copyright (C) the libgit2 contributors. All rights reserved. 3 * 4 * This file is part of libgit2, distributed under the GNU GPL v2 with 5 * a Linking Exception. For full terms see the included COPYING file. 6 */ 7 #ifndef INCLUDE_commit_h__ 8 #define INCLUDE_commit_h__ 9 10 #include "common.h" 11 12 #include "git2/commit.h" 13 #include "tree.h" 14 #include "repository.h" 15 #include "array.h" 16 17 #include <time.h> 18 19 struct git_commit { 20 git_object object; 21 22 git_array_t(git_oid) parent_ids; 23 git_oid tree_id; 24 25 git_signature *author; 26 git_signature *committer; 27 28 char *message_encoding; 29 char *raw_message; 30 char *raw_header; 31 32 char *summary; 33 char *body; 34 }; 35 36 void git_commit__free(void *commit); 37 int git_commit__parse(void *commit, git_odb_object *obj); 38 int git_commit__parse_raw(void *commit, const char *data, size_t size); 39 40 typedef enum { 41 GIT_COMMIT_PARSE_QUICK = (1 << 0), /**< Only parse parents and committer info */ 42 } git_commit__parse_flags; 43 44 int git_commit__parse_ext(git_commit *commit, git_odb_object *odb_obj, unsigned int flags); 45 46 #endif 47