sha1_file.c: split has_loose_object() into local and non-local counterparts

Signed-off-by: Brandon Casey <drafnel@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Casey 2008-11-09 23:59:57 -06:00 committed by Junio C Hamano
parent 3c3df42910
commit 0f4dc14ac4
2 changed files with 14 additions and 6 deletions

View File

@ -565,6 +565,7 @@ extern int move_temp_to_file(const char *tmpfile, const char *filename);
extern int has_sha1_pack(const unsigned char *sha1, const char **ignore); extern int has_sha1_pack(const unsigned char *sha1, const char **ignore);
extern int has_sha1_file(const unsigned char *sha1); extern int has_sha1_file(const unsigned char *sha1);
extern int has_loose_object_nonlocal(const unsigned char *sha1);
extern int has_pack_file(const unsigned char *sha1); extern int has_pack_file(const unsigned char *sha1);
extern int has_pack_index(const unsigned char *sha1); extern int has_pack_index(const unsigned char *sha1);

View File

@ -410,23 +410,30 @@ void prepare_alt_odb(void)
read_info_alternates(get_object_directory(), 0); read_info_alternates(get_object_directory(), 0);
} }
static int has_loose_object(const unsigned char *sha1) static int has_loose_object_local(const unsigned char *sha1)
{ {
char *name = sha1_file_name(sha1); char *name = sha1_file_name(sha1);
struct alternate_object_database *alt; return !access(name, F_OK);
}
if (!access(name, F_OK)) int has_loose_object_nonlocal(const unsigned char *sha1)
return 1; {
struct alternate_object_database *alt;
prepare_alt_odb(); prepare_alt_odb();
for (alt = alt_odb_list; alt; alt = alt->next) { for (alt = alt_odb_list; alt; alt = alt->next) {
name = alt->name; fill_sha1_path(alt->name, sha1);
fill_sha1_path(name, sha1);
if (!access(alt->base, F_OK)) if (!access(alt->base, F_OK))
return 1; return 1;
} }
return 0; return 0;
} }
static int has_loose_object(const unsigned char *sha1)
{
return has_loose_object_local(sha1) ||
has_loose_object_nonlocal(sha1);
}
static unsigned int pack_used_ctr; static unsigned int pack_used_ctr;
static unsigned int pack_mmap_calls; static unsigned int pack_mmap_calls;
static unsigned int peak_pack_open_windows; static unsigned int peak_pack_open_windows;