]> git.proxmox.com Git - libgit2.git/blob - src/commit.h
New upstream version 1.4.3+dfsg.1
[libgit2.git] / src / commit.h
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 int git_commit__header_field(
37 git_str *out,
38 const git_commit *commit,
39 const char *field);
40
41 int git_commit__extract_signature(
42 git_str *signature,
43 git_str *signed_data,
44 git_repository *repo,
45 git_oid *commit_id,
46 const char *field);
47
48 int git_commit__create_buffer(
49 git_str *out,
50 git_repository *repo,
51 const git_signature *author,
52 const git_signature *committer,
53 const char *message_encoding,
54 const char *message,
55 const git_tree *tree,
56 size_t parent_count,
57 const git_commit *parents[]);
58
59 void git_commit__free(void *commit);
60 int git_commit__parse(void *commit, git_odb_object *obj);
61 int git_commit__parse_raw(void *commit, const char *data, size_t size);
62
63 typedef enum {
64 GIT_COMMIT_PARSE_QUICK = (1 << 0) /**< Only parse parents and committer info */
65 } git_commit__parse_flags;
66
67 int git_commit__parse_ext(git_commit *commit, git_odb_object *odb_obj, unsigned int flags);
68
69 #endif