]>
Commit | Line | Data |
---|---|---|
6eb8ae00 DB |
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; | |
bd1e17e2 | 17 | char *buffer; |
6eb8ae00 DB |
18 | }; |
19 | ||
20 | extern const char *commit_type; | |
21 | ||
22 | struct commit *lookup_commit(unsigned char *sha1); | |
961784ee | 23 | struct commit *lookup_commit_reference(unsigned char *sha1); |
6eb8ae00 | 24 | |
bd2c39f5 NP |
25 | int parse_commit_buffer(struct commit *item, void *buffer, unsigned long size); |
26 | ||
6eb8ae00 DB |
27 | int parse_commit(struct commit *item); |
28 | ||
ac5155ef | 29 | struct commit_list * commit_list_insert(struct commit *item, struct commit_list **list_p); |
dd97f850 | 30 | |
6eb8ae00 DB |
31 | void free_commit_list(struct commit_list *list); |
32 | ||
dd97f850 DB |
33 | void sort_by_date(struct commit_list **list); |
34 | ||
000182ea LT |
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); | |
e3bc7a3b LT |
44 | |
45 | ||
dd97f850 DB |
46 | /** Removes the first commit from a list sorted by date, and adds all |
47 | * of its parents. | |
48 | **/ | |
58e28af6 DB |
49 | struct commit *pop_most_recent_commit(struct commit_list **list, |
50 | unsigned int mark); | |
dd97f850 | 51 | |
6eb8ae00 | 52 | #endif /* COMMIT_H */ |