Merge branch 'sb/more-repo-in-api'
The in-core repository instances are passed through more codepaths. * sb/more-repo-in-api: (23 commits) t/helper/test-repository: celebrate independence from the_repository path.h: make REPO_GIT_PATH_FUNC repository agnostic commit: prepare free_commit_buffer and release_commit_memory for any repo commit-graph: convert remaining functions to handle any repo submodule: don't add submodule as odb for push submodule: use submodule repos for object lookup pretty: prepare format_commit_message to handle arbitrary repositories commit: prepare logmsg_reencode to handle arbitrary repositories commit: prepare repo_unuse_commit_buffer to handle any repo commit: prepare get_commit_buffer to handle any repo commit-reach: prepare in_merge_bases[_many] to handle any repo commit-reach: prepare get_merge_bases to handle any repo commit-reach.c: allow get_merge_bases_many_0 to handle any repo commit-reach.c: allow remove_redundant to handle any repo commit-reach.c: allow merge_bases_many to handle any repo commit-reach.c: allow paint_down_to_common to handle any repo commit: allow parse_commit* to handle any repo object: parse_object to honor its repository argument object-store: prepare has_{sha1, object}_file to handle any repo object-store: prepare read_object_file to deal with any repo ...
This commit is contained in:
43
commit.h
43
commit.h
@ -80,12 +80,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;
|
||||
@ -109,7 +118,12 @@ const void *get_cached_commit_buffer(struct repository *, const struct commit *,
|
||||
* from disk. The resulting memory should not be modified, and must be given
|
||||
* to unuse_commit_buffer when the caller is done.
|
||||
*/
|
||||
const void *get_commit_buffer(const struct commit *, unsigned long *size);
|
||||
const void *repo_get_commit_buffer(struct repository *r,
|
||||
const struct commit *,
|
||||
unsigned long *size);
|
||||
#ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS
|
||||
#define get_commit_buffer(c, s) repo_get_commit_buffer(the_repository, c, s)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Tell the commit subsytem that we are done with a particular commit buffer.
|
||||
@ -117,12 +131,17 @@ const void *get_commit_buffer(const struct commit *, unsigned long *size);
|
||||
* from an earlier call to get_commit_buffer. The buffer may or may not be
|
||||
* freed by this call; callers should not access the memory afterwards.
|
||||
*/
|
||||
void unuse_commit_buffer(const struct commit *, const void *buffer);
|
||||
void repo_unuse_commit_buffer(struct repository *r,
|
||||
const struct commit *,
|
||||
const void *buffer);
|
||||
#ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS
|
||||
#define unuse_commit_buffer(c, b) repo_unuse_commit_buffer(the_repository, c, b)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Free any cached object buffer associated with the commit.
|
||||
*/
|
||||
void free_commit_buffer(struct commit *);
|
||||
void free_commit_buffer(struct parsed_object_pool *pool, struct commit *);
|
||||
|
||||
struct tree *get_commit_tree(const struct commit *);
|
||||
struct object_id *get_commit_tree_oid(const struct commit *);
|
||||
@ -131,7 +150,7 @@ struct object_id *get_commit_tree_oid(const struct commit *);
|
||||
* Release memory related to a commit, including the parent list and
|
||||
* any cached object buffer.
|
||||
*/
|
||||
void release_commit_memory(struct commit *c);
|
||||
void release_commit_memory(struct parsed_object_pool *pool, struct commit *c);
|
||||
|
||||
/*
|
||||
* Disassociate any cached object buffer from the commit, but do not free it.
|
||||
@ -162,6 +181,14 @@ extern int has_non_ascii(const char *text);
|
||||
extern const char *logmsg_reencode(const struct commit *commit,
|
||||
char **commit_encoding,
|
||||
const char *output_encoding);
|
||||
const char *repo_logmsg_reencode(struct repository *r,
|
||||
const struct commit *commit,
|
||||
char **commit_encoding,
|
||||
const char *output_encoding);
|
||||
#ifndef NO_THE_REPOSITORY_COMPATIBILITY_MACROS
|
||||
#define logmsg_reencode(c, enc, out) repo_logmsg_reencode(the_repository, c, enc, out)
|
||||
#endif
|
||||
|
||||
extern const char *skip_blank_lines(const char *msg);
|
||||
|
||||
/** Removes the first commit from a list sorted by date, and adds all
|
||||
|
Reference in New Issue
Block a user