list-objects-filter-options: support --no-filter
Teach opt_parse_list_objects_filter() to take --no-filter option and to free the contents of struct filter_options. This command line argument will be automatically inherited by commands using OPT_PARSE_LIST_OBJECTS_FILTER(); this includes pack-objects. Signed-off-by: Jeff Hostetler <jeffhost@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
1dde5fa2b2
commit
4875c9791e
@ -242,6 +242,9 @@ So does `git bundle` (see linkgit:git-bundle[1]) when it creates a bundle.
|
||||
the resulting packfile. See linkgit:git-rev-list[1] for valid
|
||||
`<filter-spec>` forms.
|
||||
|
||||
--no-filter::
|
||||
Turns off any previous `--filter=` argument.
|
||||
|
||||
--missing=<missing-action>::
|
||||
A debug option to help with future "partial clone" development.
|
||||
This option specifies how missing objects are handled.
|
||||
|
@ -74,8 +74,19 @@ int opt_parse_list_objects_filter(const struct option *opt,
|
||||
{
|
||||
struct list_objects_filter_options *filter_options = opt->value;
|
||||
|
||||
assert(arg);
|
||||
assert(!unset);
|
||||
if (unset || !arg) {
|
||||
list_objects_filter_release(filter_options);
|
||||
return 0;
|
||||
}
|
||||
|
||||
return parse_list_objects_filter(filter_options, arg);
|
||||
}
|
||||
|
||||
void list_objects_filter_release(
|
||||
struct list_objects_filter_options *filter_options)
|
||||
{
|
||||
free(filter_options->filter_spec);
|
||||
free(filter_options->sparse_oid_value);
|
||||
free(filter_options->sparse_path_value);
|
||||
memset(filter_options, 0, sizeof(*filter_options));
|
||||
}
|
||||
|
@ -52,7 +52,10 @@ int opt_parse_list_objects_filter(const struct option *opt,
|
||||
|
||||
#define OPT_PARSE_LIST_OBJECTS_FILTER(fo) \
|
||||
{ OPTION_CALLBACK, 0, CL_ARG__FILTER, fo, N_("args"), \
|
||||
N_("object filtering"), PARSE_OPT_NONEG, \
|
||||
N_("object filtering"), 0, \
|
||||
opt_parse_list_objects_filter }
|
||||
|
||||
void list_objects_filter_release(
|
||||
struct list_objects_filter_options *filter_options);
|
||||
|
||||
#endif /* LIST_OBJECTS_FILTER_OPTIONS_H */
|
||||
|
Loading…
Reference in New Issue
Block a user