From f9253394a271a9fefdd234a86c228adeb6d0136a Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Wed, 29 Jun 2005 02:51:27 -0700 Subject: [PATCH] Add git-verify-pack command. Given a list of .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 Signed-off-by: Linus Torvalds --- cache.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'cache.h') diff --git a/cache.h b/cache.h index 9bfcdb641a..9b021d6560 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*); -- cgit v1.2.3