[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>
This commit is contained in:
Daniel Barkalow 2005-04-18 11:39:48 -07:00 committed by Linus Torvalds
parent 6683463ed6
commit 6eb8ae00d4
4 changed files with 87 additions and 0 deletions

14
blob.h Normal file
View File

@ -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 */

27
commit.h Normal file
View File

@ -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 */

29
object.h Normal file
View File

@ -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 */

17
tree.h Normal file
View File

@ -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 */