commit: allow parse_commit* to handle any repo
Just like the previous commit, parse_commit and friends are used a lot and are found in new patches, so we cannot change their signature easily. Re-introduce these function prefixed with 'repo_' that take a repository argument and keep the original as a shallow macro. Signed-off-by: Stefan Beller <sbeller@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
d1a6902265
commit
9e5252abd1
18
commit.c
18
commit.c
@ -443,7 +443,10 @@ int parse_commit_buffer(struct repository *r, struct commit *item, const void *b
|
||||
return 0;
|
||||
}
|
||||
|
||||
int parse_commit_internal(struct commit *item, int quiet_on_missing, int use_commit_graph)
|
||||
int repo_parse_commit_internal(struct repository *r,
|
||||
struct commit *item,
|
||||
int quiet_on_missing,
|
||||
int use_commit_graph)
|
||||
{
|
||||
enum object_type type;
|
||||
void *buffer;
|
||||
@ -454,9 +457,9 @@ int parse_commit_internal(struct commit *item, int quiet_on_missing, int use_com
|
||||
return -1;
|
||||
if (item->object.parsed)
|
||||
return 0;
|
||||
if (use_commit_graph && parse_commit_in_graph(the_repository, item))
|
||||
if (use_commit_graph && parse_commit_in_graph(r, item))
|
||||
return 0;
|
||||
buffer = read_object_file(&item->object.oid, &type, &size);
|
||||
buffer = repo_read_object_file(r, &item->object.oid, &type, &size);
|
||||
if (!buffer)
|
||||
return quiet_on_missing ? -1 :
|
||||
error("Could not read %s",
|
||||
@ -467,18 +470,19 @@ int parse_commit_internal(struct commit *item, int quiet_on_missing, int use_com
|
||||
oid_to_hex(&item->object.oid));
|
||||
}
|
||||
|
||||
ret = parse_commit_buffer(the_repository, item, buffer, size, 0);
|
||||
ret = parse_commit_buffer(r, item, buffer, size, 0);
|
||||
if (save_commit_buffer && !ret) {
|
||||
set_commit_buffer(the_repository, item, buffer, size);
|
||||
set_commit_buffer(r, item, buffer, size);
|
||||
return 0;
|
||||
}
|
||||
free(buffer);
|
||||
return ret;
|
||||
}
|
||||
|
||||
int parse_commit_gently(struct commit *item, int quiet_on_missing)
|
||||
int repo_parse_commit_gently(struct repository *r,
|
||||
struct commit *item, int quiet_on_missing)
|
||||
{
|
||||
return parse_commit_internal(item, quiet_on_missing, 1);
|
||||
return repo_parse_commit_internal(r, item, quiet_on_missing, 1);
|
||||
}
|
||||
|
||||
void parse_commit_or_die(struct commit *item)
|
||||
|
17
commit.h
17
commit.h
@ -79,12 +79,21 @@ struct commit *lookup_commit_reference_by_name(const char *name);
|
||||
struct commit *lookup_commit_or_die(const struct object_id *oid, const char *ref_name);
|
||||
|
||||
int parse_commit_buffer(struct repository *r, struct commit *item, const void *buffer, unsigned long size, int check_graph);
|
||||
int parse_commit_internal(struct commit *item, int quiet_on_missing, int use_commit_graph);
|
||||
int parse_commit_gently(struct commit *item, int quiet_on_missing);
|
||||
static inline int parse_commit(struct commit *item)
|
||||
int repo_parse_commit_internal(struct repository *r, struct commit *item,
|
||||
int quiet_on_missing, int use_commit_graph);
|
||||
int repo_parse_commit_gently(struct repository *r,
|
||||
struct commit *item,
|
||||
int quiet_on_missing);
|
||||
static inline int repo_parse_commit(struct repository *r, struct commit *item)
|
||||
{
|
||||
return parse_commit_gently(item, 0);
|
||||
return repo_parse_commit_gently(r, item, 0);
|
||||
}
|
||||
#ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS
|
||||
#define parse_commit_internal(item, quiet, use) repo_parse_commit_internal(the_repository, item, quiet, use)
|
||||
#define parse_commit_gently(item, quiet) repo_parse_commit_gently(the_repository, item, quiet)
|
||||
#define parse_commit(item) repo_parse_commit(the_repository, item)
|
||||
#endif
|
||||
|
||||
void parse_commit_or_die(struct commit *item);
|
||||
|
||||
struct buffer_slab;
|
||||
|
@ -40,3 +40,27 @@ expression F;
|
||||
- has_object_file_with_flags(
|
||||
+ repo_has_object_file_with_flags(the_repository,
|
||||
E)
|
||||
|
||||
@@
|
||||
expression E;
|
||||
expression F;
|
||||
expression G;
|
||||
@@
|
||||
- parse_commit_internal(
|
||||
+ repo_parse_commit_internal(the_repository,
|
||||
E, F, G)
|
||||
|
||||
@@
|
||||
expression E;
|
||||
expression F;
|
||||
@@
|
||||
- parse_commit_gently(
|
||||
+ repo_parse_commit_gently(the_repository,
|
||||
E, F)
|
||||
|
||||
@@
|
||||
expression E;
|
||||
@@
|
||||
- parse_commit(
|
||||
+ repo_parse_commit(the_repository,
|
||||
E)
|
||||
|
Loading…
Reference in New Issue
Block a user