]> git.proxmox.com Git - libgit2.git/blame - src/commit.h
New upstream version 1.4.3+dfsg.1
[libgit2.git] / src / commit.h
CommitLineData
bb742ede 1/*
359fc2d2 2 * Copyright (C) the libgit2 contributors. All rights reserved.
bb742ede
VM
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 */
4f0adcd0
AE
7#ifndef INCLUDE_commit_h__
8#define INCLUDE_commit_h__
b3039bee 9
eae0bfdc
PP
10#include "common.h"
11
44908fe7 12#include "git2/commit.h"
225fe215 13#include "tree.h"
3315782c 14#include "repository.h"
9abc78ae 15#include "array.h"
4f0adcd0
AE
16
17#include <time.h>
18
19struct git_commit {
f49a2e49 20 git_object object;
c5696427 21
9abc78ae 22 git_array_t(git_oid) parent_ids;
cfbe4be3 23 git_oid tree_id;
08d5d000 24
638c2ca4
VM
25 git_signature *author;
26 git_signature *committer;
52f2390b 27
5ae2f0c0 28 char *message_encoding;
598f069b 29 char *raw_message;
f094f905 30 char *raw_header;
300d192f
ET
31
32 char *summary;
7f8fe1d4 33 char *body;
4f0adcd0
AE
34};
35
e579e0f7
MB
36int git_commit__header_field(
37 git_str *out,
38 const git_commit *commit,
39 const char *field);
40
41int 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
48int 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
78606263 59void git_commit__free(void *commit);
3f27127d 60int git_commit__parse(void *commit, git_odb_object *obj);
ac3d33df 61int git_commit__parse_raw(void *commit, const char *data, size_t size);
0c3596f1 62
22a2d3d5 63typedef enum {
e579e0f7 64 GIT_COMMIT_PARSE_QUICK = (1 << 0) /**< Only parse parents and committer info */
22a2d3d5
UG
65} git_commit__parse_flags;
66
67int git_commit__parse_ext(git_commit *commit, git_odb_object *odb_obj, unsigned int flags);
68
4f0adcd0 69#endif