]>
Commit | Line | Data |
---|---|---|
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 |
9 | struct 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 | 16 | struct 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 | ||
22 | typedef struct git_commit_list git_commit_list; | |
36b7cdb6 | 23 | typedef struct git_commit_node git_commit_node; |
08d5d000 | 24 | |
4f0adcd0 | 25 | struct 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 |
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); | |
1a895dd7 | 42 | void git_commit__mark_uninteresting(git_commit *commit); |
417f0abc | 43 | |
8add0153 VM |
44 | int git_commit_parse_existing(git_commit *commit); |
45 | ||
655d381a VM |
46 | |
47 | void git_commit_list_push_back(git_commit_list *list, git_commit *commit); | |
48 | void git_commit_list_push_front(git_commit_list *list, git_commit *commit); | |
49 | ||
36b7cdb6 VM |
50 | git_commit *git_commit_list_pop_back(git_commit_list *list); |
51 | git_commit *git_commit_list_pop_front(git_commit_list *list); | |
655d381a VM |
52 | |
53 | void git_commit_list_clear(git_commit_list *list, int free_commits); | |
54 | ||
55 | void git_commit_list_timesort(git_commit_list *list); | |
56 | void git_commit_list_toposort(git_commit_list *list); | |
08d5d000 | 57 | |
4f0adcd0 | 58 | #endif |