list-objects: consolidate traverse_commit_list[_filtered]
Now that all consumers of traverse_commit_list_filtered() populate the 'filter' member of 'struct rev_info', we can drop that parameter from the method prototype to simplify things. In addition, the only thing different now between traverse_commit_list_filtered() and traverse_commit_list() is the presence of the 'omitted' parameter, which is only non-NULL for one caller. We can consolidate these two methods by having one call the other and use the simpler form everywhere the 'omitted' parameter would be NULL. Signed-off-by: Derrick Stolee <derrickstolee@github.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
09d4a79eff
commit
3e0370a8d2
@ -3778,8 +3778,8 @@ static void get_object_list(int ac, const char **av)
|
|||||||
|
|
||||||
if (!fn_show_object)
|
if (!fn_show_object)
|
||||||
fn_show_object = show_object;
|
fn_show_object = show_object;
|
||||||
traverse_commit_list_filtered(&revs.filter, &revs,
|
traverse_commit_list(&revs,
|
||||||
show_commit, fn_show_object, NULL,
|
show_commit, fn_show_object,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
if (unpack_unreachable_expiration) {
|
if (unpack_unreachable_expiration) {
|
||||||
|
@ -729,7 +729,7 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
|
|||||||
oidset_init(&missing_objects, DEFAULT_OIDSET_SIZE);
|
oidset_init(&missing_objects, DEFAULT_OIDSET_SIZE);
|
||||||
|
|
||||||
traverse_commit_list_filtered(
|
traverse_commit_list_filtered(
|
||||||
&revs.filter, &revs, show_commit, show_object, &info,
|
&revs, show_commit, show_object, &info,
|
||||||
(arg_print_omitted ? &omitted_objects : NULL));
|
(arg_print_omitted ? &omitted_objects : NULL));
|
||||||
|
|
||||||
if (arg_print_omitted) {
|
if (arg_print_omitted) {
|
||||||
|
@ -416,35 +416,25 @@ static void do_traverse(struct traversal_context *ctx)
|
|||||||
strbuf_release(&csp);
|
strbuf_release(&csp);
|
||||||
}
|
}
|
||||||
|
|
||||||
void traverse_commit_list(struct rev_info *revs,
|
|
||||||
show_commit_fn show_commit,
|
|
||||||
show_object_fn show_object,
|
|
||||||
void *show_data)
|
|
||||||
{
|
|
||||||
struct traversal_context ctx;
|
|
||||||
ctx.revs = revs;
|
|
||||||
ctx.show_commit = show_commit;
|
|
||||||
ctx.show_object = show_object;
|
|
||||||
ctx.show_data = show_data;
|
|
||||||
ctx.filter = NULL;
|
|
||||||
do_traverse(&ctx);
|
|
||||||
}
|
|
||||||
|
|
||||||
void traverse_commit_list_filtered(
|
void traverse_commit_list_filtered(
|
||||||
struct list_objects_filter_options *filter_options,
|
|
||||||
struct rev_info *revs,
|
struct rev_info *revs,
|
||||||
show_commit_fn show_commit,
|
show_commit_fn show_commit,
|
||||||
show_object_fn show_object,
|
show_object_fn show_object,
|
||||||
void *show_data,
|
void *show_data,
|
||||||
struct oidset *omitted)
|
struct oidset *omitted)
|
||||||
{
|
{
|
||||||
struct traversal_context ctx;
|
struct traversal_context ctx = {
|
||||||
|
.revs = revs,
|
||||||
|
.show_object = show_object,
|
||||||
|
.show_commit = show_commit,
|
||||||
|
.show_data = show_data,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (revs->filter.choice)
|
||||||
|
ctx.filter = list_objects_filter__init(omitted, &revs->filter);
|
||||||
|
|
||||||
ctx.revs = revs;
|
|
||||||
ctx.show_object = show_object;
|
|
||||||
ctx.show_commit = show_commit;
|
|
||||||
ctx.show_data = show_data;
|
|
||||||
ctx.filter = list_objects_filter__init(omitted, filter_options);
|
|
||||||
do_traverse(&ctx);
|
do_traverse(&ctx);
|
||||||
|
|
||||||
|
if (ctx.filter)
|
||||||
list_objects_filter__free(ctx.filter);
|
list_objects_filter__free(ctx.filter);
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,6 @@ struct rev_info;
|
|||||||
|
|
||||||
typedef void (*show_commit_fn)(struct commit *, void *);
|
typedef void (*show_commit_fn)(struct commit *, void *);
|
||||||
typedef void (*show_object_fn)(struct object *, const char *, void *);
|
typedef void (*show_object_fn)(struct object *, const char *, void *);
|
||||||
void traverse_commit_list(struct rev_info *, show_commit_fn, show_object_fn, void *);
|
|
||||||
|
|
||||||
typedef void (*show_edge_fn)(struct commit *);
|
typedef void (*show_edge_fn)(struct commit *);
|
||||||
void mark_edges_uninteresting(struct rev_info *revs,
|
void mark_edges_uninteresting(struct rev_info *revs,
|
||||||
@ -18,11 +17,20 @@ struct oidset;
|
|||||||
struct list_objects_filter_options;
|
struct list_objects_filter_options;
|
||||||
|
|
||||||
void traverse_commit_list_filtered(
|
void traverse_commit_list_filtered(
|
||||||
struct list_objects_filter_options *filter_options,
|
|
||||||
struct rev_info *revs,
|
struct rev_info *revs,
|
||||||
show_commit_fn show_commit,
|
show_commit_fn show_commit,
|
||||||
show_object_fn show_object,
|
show_object_fn show_object,
|
||||||
void *show_data,
|
void *show_data,
|
||||||
struct oidset *omitted);
|
struct oidset *omitted);
|
||||||
|
|
||||||
|
static inline void traverse_commit_list(
|
||||||
|
struct rev_info *revs,
|
||||||
|
show_commit_fn show_commit,
|
||||||
|
show_object_fn show_object,
|
||||||
|
void *show_data)
|
||||||
|
{
|
||||||
|
traverse_commit_list_filtered(revs, show_commit,
|
||||||
|
show_object, show_data, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* LIST_OBJECTS_H */
|
#endif /* LIST_OBJECTS_H */
|
||||||
|
@ -822,9 +822,9 @@ static struct bitmap *find_objects(struct bitmap_index *bitmap_git,
|
|||||||
show_data.bitmap_git = bitmap_git;
|
show_data.bitmap_git = bitmap_git;
|
||||||
show_data.base = base;
|
show_data.base = base;
|
||||||
|
|
||||||
traverse_commit_list_filtered(&revs->filter, revs,
|
traverse_commit_list(revs,
|
||||||
show_commit, show_object,
|
show_commit, show_object,
|
||||||
&show_data, NULL);
|
&show_data);
|
||||||
|
|
||||||
revs->include_check = NULL;
|
revs->include_check = NULL;
|
||||||
revs->include_check_obj = NULL;
|
revs->include_check_obj = NULL;
|
||||||
|
Loading…
Reference in New Issue
Block a user