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.
{
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));
+}
#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 */