]>
Commit | Line | Data |
---|---|---|
1 | #ifndef COMMIT_H | |
2 | #define COMMIT_H | |
3 | ||
4 | #include "object.h" | |
5 | #include "tree.h" | |
6 | ||
7 | struct commit_list { | |
8 | struct commit *item; | |
9 | struct commit_list *next; | |
10 | }; | |
11 | ||
12 | struct commit { | |
13 | struct object object; | |
14 | unsigned long date; | |
15 | struct commit_list *parents; | |
16 | struct tree *tree; | |
17 | char *buffer; | |
18 | }; | |
19 | ||
20 | extern const char *commit_type; | |
21 | ||
22 | struct commit *lookup_commit(unsigned char *sha1); | |
23 | struct commit *lookup_commit_reference(unsigned char *sha1); | |
24 | ||
25 | int parse_commit_buffer(struct commit *item, void *buffer, unsigned long size); | |
26 | ||
27 | int parse_commit(struct commit *item); | |
28 | ||
29 | struct commit_list * commit_list_insert(struct commit *item, struct commit_list **list_p); | |
30 | ||
31 | void free_commit_list(struct commit_list *list); | |
32 | ||
33 | void sort_by_date(struct commit_list **list); | |
34 | ||
35 | /* Commit formats */ | |
36 | enum cmit_fmt { | |
37 | CMIT_FMT_RAW, | |
38 | CMIT_FMT_MEDIUM, | |
39 | CMIT_FMT_DEFAULT = CMIT_FMT_MEDIUM, | |
40 | CMIT_FMT_SHORT | |
41 | }; | |
42 | ||
43 | extern unsigned long pretty_print_commit(enum cmit_fmt fmt, const char *msg, unsigned long len, char *buf, unsigned long space); | |
44 | ||
45 | void insert_by_date(struct commit_list **list, struct commit *item); | |
46 | ||
47 | /** Removes the first commit from a list sorted by date, and adds all | |
48 | * of its parents. | |
49 | **/ | |
50 | struct commit *pop_most_recent_commit(struct commit_list **list, | |
51 | unsigned int mark); | |
52 | ||
53 | struct commit *pop_commit(struct commit_list **stack); | |
54 | ||
55 | int count_parents(struct commit * commit); | |
56 | #endif /* COMMIT_H */ |