This adds the structs and function declarations for parsing git objects. Signed-Off-By: Daniel Barkalow <[EMAIL PROTECTED]> Index: blob.h =================================================================== --- /dev/null (tree:5ca133e1b74aee39b2124c0ec9fd51539babb5e0) +++ 1172a9b8f45b2fd640985595cc5258db3b027828/blob.h (mode:100644 sha1:9a23db3a7deca67981b67ceb768411e31f723715) @@ -0,0 +1,14 @@ +#ifndef BLOB_H +#define BLOB_H + +#include "object.h" + +extern const char *blob_type; + +struct blob { + struct object object; +}; + +struct blob *lookup_blob(unsigned char *sha1); + +#endif /* BLOB_H */ Index: commit.h =================================================================== --- /dev/null (tree:5ca133e1b74aee39b2124c0ec9fd51539babb5e0) +++ 1172a9b8f45b2fd640985595cc5258db3b027828/commit.h (mode:100644 sha1:8cd20b046875f5f7e534b0607fdd97f330f53272) @@ -0,0 +1,27 @@ +#ifndef COMMIT_H +#define COMMIT_H + +#include "object.h" +#include "tree.h" + +struct commit_list { + struct commit *item; + struct commit_list *next; +}; + +struct commit { + struct object object; + unsigned long date; + struct commit_list *parents; + struct tree *tree; +}; + +extern const char *commit_type; + +struct commit *lookup_commit(unsigned char *sha1); + +int parse_commit(struct commit *item); + +void free_commit_list(struct commit_list *list); + +#endif /* COMMIT_H */ Index: object.h =================================================================== --- /dev/null (tree:5ca133e1b74aee39b2124c0ec9fd51539babb5e0) +++ 1172a9b8f45b2fd640985595cc5258db3b027828/object.h (mode:100644 sha1:20f879e0867b8d6a052c458d9230fbc7786d2864) @@ -0,0 +1,29 @@ +#ifndef OBJECT_H +#define OBJECT_H + +struct object_list { + struct object *item; + struct object_list *next; +}; + +struct object { + unsigned parsed : 1; + unsigned used : 1; + unsigned int flags; + unsigned char sha1[20]; + const char *type; + struct object_list *refs; +}; + +int nr_objs; +struct object **objs; + +struct object *lookup_object(unsigned char *sha1); + +void created_object(unsigned char *sha1, struct object *obj); + +void add_ref(struct object *refer, struct object *target); + +void mark_reachable(struct object *obj, unsigned int mask); + +#endif /* OBJECT_H */ Index: tree.h =================================================================== --- /dev/null (tree:5ca133e1b74aee39b2124c0ec9fd51539babb5e0) +++ 1172a9b8f45b2fd640985595cc5258db3b027828/tree.h (mode:100644 sha1:14ebbacded09d5e058c7f94652dcb9e12bc31cae) @@ -0,0 +1,17 @@ +#ifndef TREE_H +#define TREE_H + +#include "object.h" + +extern const char *tree_type; + +struct tree { + struct object object; + unsigned has_full_path : 1; +}; + +struct tree *lookup_tree(unsigned char *sha1); + +int parse_tree(struct tree *tree); + +#endif /* TREE_H */
- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html