diff options
author | Daniel Barkalow <barkalow@iabervon.org> | 2005-04-18 11:39:48 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-04-18 11:39:48 -0700 |
commit | 6eb8ae00d4bceaf660a07d8bc5ab8d6ddccbe1af (patch) | |
tree | a8b8d7855516b8e7f79de226543f7fdfe8ee1e2e | |
parent | Do a very simple "merge-base" that finds the most recent common (diff) | |
download | tgif-6eb8ae00d4bceaf660a07d8bc5ab8d6ddccbe1af.tar.xz |
[PATCH] Header files for object parsing
This adds the structs and function declarations for parsing git objects.
Signed-Off-By: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r-- | blob.h | 14 | ||||
-rw-r--r-- | commit.h | 27 | ||||
-rw-r--r-- | object.h | 29 | ||||
-rw-r--r-- | tree.h | 17 |
4 files changed, 87 insertions, 0 deletions
diff --git a/blob.h b/blob.h new file mode 100644 index 0000000000..5cbf6d65ee --- /dev/null +++ b/blob.h @@ -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 */ diff --git a/commit.h b/commit.h new file mode 100644 index 0000000000..4afd27b109 --- /dev/null +++ b/commit.h @@ -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 */ diff --git a/object.h b/object.h new file mode 100644 index 0000000000..bc607fd55f --- /dev/null +++ b/object.h @@ -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 */ diff --git a/tree.h b/tree.h new file mode 100644 index 0000000000..4d5496de30 --- /dev/null +++ b/tree.h @@ -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 */ |