]> git.proxmox.com Git - libgit2.git/blame - src/commit.h
Added t0501-walk (simple test for all revision pool walking modes)
[libgit2.git] / src / commit.h
CommitLineData
4f0adcd0
AE
1#ifndef INCLUDE_commit_h__
2#define INCLUDE_commit_h__
b3039bee 3
4f0adcd0 4#include "git/commit.h"
c5696427 5#include "revobject.h"
4f0adcd0
AE
6
7#include <time.h>
8
36b7cdb6
VM
9struct git_commit_node {
10 struct git_commit *commit;
11
12 struct git_commit_node *next;
13 struct git_commit_node *prev;
14};
417f0abc 15
08d5d000 16struct git_commit_list {
36b7cdb6
VM
17 struct git_commit_node *head;
18 struct git_commit_node *tail;
19 size_t size;
08d5d000
VM
20};
21
22typedef struct git_commit_list git_commit_list;
36b7cdb6 23typedef struct git_commit_node git_commit_node;
08d5d000 24
4f0adcd0 25struct git_commit {
c5696427
VM
26 git_revpool_object object;
27
4caa8962 28 time_t commit_time;
36b7cdb6 29 git_commit_list parents;
08d5d000 30
36b7cdb6 31 unsigned short in_degree;
4caa8962 32 unsigned parsed:1,
36b7cdb6
VM
33 seen:1,
34 uninteresting:1,
35 topo_delay:1,
4caa8962 36 flags:26;
4f0adcd0
AE
37};
38
417f0abc
VM
39int git_commit__parse_oid(git_oid *oid, char **buffer_out, const char *buffer_end, const char *header);
40int git_commit__parse_buffer(git_commit *commit, void *data, size_t len);
41int git_commit__parse_time(time_t *commit_time, char *buffer, const char *buffer_end);
1a895dd7 42void git_commit__mark_uninteresting(git_commit *commit);
417f0abc 43
8add0153
VM
44int git_commit_parse_existing(git_commit *commit);
45
655d381a
VM
46
47void git_commit_list_push_back(git_commit_list *list, git_commit *commit);
48void git_commit_list_push_front(git_commit_list *list, git_commit *commit);
49
36b7cdb6
VM
50git_commit *git_commit_list_pop_back(git_commit_list *list);
51git_commit *git_commit_list_pop_front(git_commit_list *list);
655d381a
VM
52
53void git_commit_list_clear(git_commit_list *list, int free_commits);
54
55void git_commit_list_timesort(git_commit_list *list);
56void git_commit_list_toposort(git_commit_list *list);
08d5d000 57
4f0adcd0 58#endif