1 #ifndef INCLUDE_commit_h__
2 #define INCLUDE_commit_h__
4 #include "git/commit.h"
9 struct git_commit_node
{
10 struct git_commit
*commit
;
12 struct git_commit_node
*next
;
13 struct git_commit_node
*prev
;
16 struct git_commit_list
{
17 struct git_commit_node
*head
;
18 struct git_commit_node
*tail
;
22 typedef struct git_commit_list git_commit_list
;
23 typedef struct git_commit_node git_commit_node
;
26 git_revpool_object object
;
29 git_commit_list parents
;
31 unsigned short in_degree
;
39 int git_commit__parse_oid(git_oid
*oid
, char **buffer_out
, const char *buffer_end
, const char *header
);
40 int git_commit__parse_buffer(git_commit
*commit
, void *data
, size_t len
);
41 int git_commit__parse_time(time_t *commit_time
, char *buffer
, const char *buffer_end
);
42 void git_commit__mark_uninteresting(git_commit
*commit
);
44 int git_commit_parse_existing(git_commit
*commit
);
47 int git_commit_list_push_back(git_commit_list
*list
, git_commit
*commit
);
48 int git_commit_list_push_front(git_commit_list
*list
, git_commit
*commit
);
50 git_commit
*git_commit_list_pop_back(git_commit_list
*list
);
51 git_commit
*git_commit_list_pop_front(git_commit_list
*list
);
53 void git_commit_list_clear(git_commit_list
*list
, int free_commits
);
55 void git_commit_list_timesort(git_commit_list
*list
);
56 void git_commit_list_toposort(git_commit_list
*list
);