object-store: prepare has_{sha1, object}_file to handle any repo
Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
afd69dcc21
commit
9b45f49981
@ -10,3 +10,33 @@ expression G;
|
|||||||
- read_object_file(
|
- read_object_file(
|
||||||
+ repo_read_object_file(the_repository,
|
+ repo_read_object_file(the_repository,
|
||||||
E, F, G)
|
E, F, G)
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression E;
|
||||||
|
@@
|
||||||
|
- has_sha1_file(
|
||||||
|
+ repo_has_sha1_file(the_repository,
|
||||||
|
E)
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression E;
|
||||||
|
expression F;
|
||||||
|
@@
|
||||||
|
- has_sha1_file_with_flags(
|
||||||
|
+ repo_has_sha1_file_with_flags(the_repository,
|
||||||
|
E)
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression E;
|
||||||
|
@@
|
||||||
|
- has_object_file(
|
||||||
|
+ repo_has_object_file(the_repository,
|
||||||
|
E)
|
||||||
|
|
||||||
|
@@
|
||||||
|
expression E;
|
||||||
|
expression F;
|
||||||
|
@@
|
||||||
|
- has_object_file_with_flags(
|
||||||
|
+ repo_has_object_file_with_flags(the_repository,
|
||||||
|
E)
|
||||||
|
@ -212,15 +212,27 @@ int read_loose_object(const char *path,
|
|||||||
* object_info. OBJECT_INFO_SKIP_CACHED is automatically set; pass
|
* object_info. OBJECT_INFO_SKIP_CACHED is automatically set; pass
|
||||||
* nonzero flags to also set other flags.
|
* nonzero flags to also set other flags.
|
||||||
*/
|
*/
|
||||||
extern int has_sha1_file_with_flags(const unsigned char *sha1, int flags);
|
int repo_has_sha1_file_with_flags(struct repository *r,
|
||||||
static inline int has_sha1_file(const unsigned char *sha1)
|
const unsigned char *sha1, int flags);
|
||||||
|
static inline int repo_has_sha1_file(struct repository *r,
|
||||||
|
const unsigned char *sha1)
|
||||||
{
|
{
|
||||||
return has_sha1_file_with_flags(sha1, 0);
|
return repo_has_sha1_file_with_flags(r, sha1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS
|
||||||
|
#define has_sha1_file_with_flags(sha1, flags) repo_has_sha1_file_with_flags(the_repository, sha1, flags)
|
||||||
|
#define has_sha1_file(sha1) repo_has_sha1_file(the_repository, sha1)
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Same as the above, except for struct object_id. */
|
/* Same as the above, except for struct object_id. */
|
||||||
extern int has_object_file(const struct object_id *oid);
|
int repo_has_object_file(struct repository *r, const struct object_id *oid);
|
||||||
extern int has_object_file_with_flags(const struct object_id *oid, int flags);
|
int repo_has_object_file_with_flags(struct repository *r,
|
||||||
|
const struct object_id *oid, int flags);
|
||||||
|
#ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS
|
||||||
|
#define has_object_file(oid) repo_has_object_file(the_repository, oid)
|
||||||
|
#define has_object_file_with_flags(oid, flags) repo_has_object_file_with_flags(the_repository, oid, flags)
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Return true iff an alternate object database has a loose object
|
* Return true iff an alternate object database has a loose object
|
||||||
|
15
sha1-file.c
15
sha1-file.c
@ -1768,24 +1768,27 @@ int force_object_loose(const struct object_id *oid, time_t mtime)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
int has_sha1_file_with_flags(const unsigned char *sha1, int flags)
|
int repo_has_sha1_file_with_flags(struct repository *r,
|
||||||
|
const unsigned char *sha1, int flags)
|
||||||
{
|
{
|
||||||
struct object_id oid;
|
struct object_id oid;
|
||||||
if (!startup_info->have_repository)
|
if (!startup_info->have_repository)
|
||||||
return 0;
|
return 0;
|
||||||
hashcpy(oid.hash, sha1);
|
hashcpy(oid.hash, sha1);
|
||||||
return oid_object_info_extended(the_repository, &oid, NULL,
|
return oid_object_info_extended(r, &oid, NULL,
|
||||||
flags | OBJECT_INFO_SKIP_CACHED) >= 0;
|
flags | OBJECT_INFO_SKIP_CACHED) >= 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int has_object_file(const struct object_id *oid)
|
int repo_has_object_file(struct repository *r,
|
||||||
|
const struct object_id *oid)
|
||||||
{
|
{
|
||||||
return has_sha1_file(oid->hash);
|
return repo_has_sha1_file(r, oid->hash);
|
||||||
}
|
}
|
||||||
|
|
||||||
int has_object_file_with_flags(const struct object_id *oid, int flags)
|
int repo_has_object_file_with_flags(struct repository *r,
|
||||||
|
const struct object_id *oid, int flags)
|
||||||
{
|
{
|
||||||
return has_sha1_file_with_flags(oid->hash, flags);
|
return repo_has_sha1_file_with_flags(r, oid->hash, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void check_tree(const void *buf, size_t size)
|
static void check_tree(const void *buf, size_t size)
|
||||||
|
Loading…
Reference in New Issue
Block a user