X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=cache.h;h=c84e797fdb4f6988a6a8a3294ee6de5d11951276;hb=f03f2ba0a558c6fbfcf40ca24da55a8e9d602e46;hp=9b021d6560c77555a8ecfd1772aeb7eba72e85ac;hpb=f9253394a271a9fefdd234a86c228adeb6d0136a;p=git.git diff --git a/cache.h b/cache.h index 9b021d65..c84e797f 100644 --- a/cache.h +++ b/cache.h @@ -14,6 +14,8 @@ #include #include #include +#include +#include #include SHA1_HEADER #include @@ -156,6 +158,7 @@ extern void rollback_index_file(struct cache_file *); #define TYPE_CHANGED 0x0040 /* Return a statically allocated filename matching the sha1 signature */ +extern char *git_path(const char *fmt, ...); extern char *sha1_file_name(const unsigned char *sha1); /* Read and unpack a sha1 file into memory, write memory to a sha1 file */ @@ -174,6 +177,7 @@ extern int read_tree(void *buffer, unsigned long size, int stage); extern int write_sha1_from_fd(const unsigned char *sha1, int fd); +extern int has_sha1_pack(const unsigned char *sha1); extern int has_sha1_file(const unsigned char *sha1); /* Convert to/from hex/sha1 representation */ @@ -249,11 +253,25 @@ extern struct packed_git { unsigned int pack_use_cnt; char pack_name[0]; /* something like ".git/objects/pack/xxxxx.pack" */ } *packed_git; + +struct pack_entry { + unsigned int offset; + unsigned char sha1[20]; + struct packed_git *p; +}; + +extern int git_connect(int fd[2], char *url, const char *prog); +extern int finish_connect(pid_t pid); +extern int path_match(const char *path, int nr, char **match); + extern void prepare_packed_git(void); extern int use_packed_git(struct packed_git *); extern void unuse_packed_git(struct packed_git *); extern struct packed_git *add_packed_git(char *, int); extern int num_packed_objects(const struct packed_git *p); extern int nth_packed_object_sha1(const struct packed_git *, int, unsigned char*); +extern int find_pack_entry_one(const unsigned char *, struct pack_entry *, struct packed_git *); +extern void *unpack_entry_gently(struct pack_entry *, char *, unsigned long *); +extern void packed_object_info_detail(struct pack_entry *, char *, unsigned long *, unsigned long *, int *, unsigned char *); #endif /* CACHE_H */