зеркало из https://github.com/microsoft/git.git
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:
Родитель
3c3df42910
Коммит
0f4dc14ac4
1
cache.h
1
cache.h
|
@ -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_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_index(const unsigned char *sha1);
|
||||
|
|
19
sha1_file.c
19
sha1_file.c
|
@ -410,23 +410,30 @@ void prepare_alt_odb(void)
|
|||
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);
|
||||
struct alternate_object_database *alt;
|
||||
return !access(name, F_OK);
|
||||
}
|
||||
|
||||
if (!access(name, F_OK))
|
||||
return 1;
|
||||
int has_loose_object_nonlocal(const unsigned char *sha1)
|
||||
{
|
||||
struct alternate_object_database *alt;
|
||||
prepare_alt_odb();
|
||||
for (alt = alt_odb_list; alt; alt = alt->next) {
|
||||
name = alt->name;
|
||||
fill_sha1_path(name, sha1);
|
||||
fill_sha1_path(alt->name, sha1);
|
||||
if (!access(alt->base, F_OK))
|
||||
return 1;
|
||||
}
|
||||
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_mmap_calls;
|
||||
static unsigned int peak_pack_open_windows;
|
||||
|
|
Загрузка…
Ссылка в новой задаче