summaryrefslogtreecommitdiff
path: root/cache.h
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-06-29 09:51:27 (GMT)
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-29 16:11:39 (GMT)
commitf9253394a271a9fefdd234a86c228adeb6d0136a (patch)
treed01cae79c60a431d9747529bce855eb4d635e8d5 /cache.h
parent3c84974207fb6a98eaa393cd4c3481d8ecdb8ce2 (diff)
downloadgit-f9253394a271a9fefdd234a86c228adeb6d0136a.zip
git-f9253394a271a9fefdd234a86c228adeb6d0136a.tar.gz
git-f9253394a271a9fefdd234a86c228adeb6d0136a.tar.bz2
[PATCH] Add git-verify-pack command.
Given a list of <pack>.idx files, this command validates the index file and the corresponding .pack file for consistency. This patch also uses the same validation mechanism in fsck-cache when the --full flag is used. During normal operation, sha1_file.c verifies that a given .idx file matches the .pack file by comparing the SHA1 checksum stored in .idx file and .pack file as a minimum sanity check. We may further want to check the pack signature and version when we map the pack, but that would be a separate patch. Earlier, errors to map a pack file was not flagged fatal but led to a random fatal error later. This version explicitly die()s when such an error is detected. Signed-off-by: Junio C Hamano <junkio@cox.net> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'cache.h')
-rw-r--r--cache.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/cache.h b/cache.h
index 9bfcdb6..9b021d6 100644
--- a/cache.h
+++ b/cache.h
@@ -246,9 +246,13 @@ extern struct packed_git {
unsigned int *index_base;
void *pack_base;
unsigned int pack_last_used;
+ unsigned int pack_use_cnt;
char pack_name[0]; /* something like ".git/objects/pack/xxxxx.pack" */
} *packed_git;
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*);